gpt4 book ai didi

c - 类型类型转换节点结构以打印内容

转载 作者:行者123 更新时间:2023-11-30 17:33:30 25 4
gpt4 key购买 nike

我正在编写一个二叉树程序,其中树中的每个节点都包含一个结构。我陷入了如何正确类型转换结构以打印其内容的困境。

这是我的结构定义:

//inventory definition
typedef struct inventory
{
char invName[36];
int invPartNo;
int invQOH;
float invUnitCost;
float invPrice;
}item;

//tree definition
struct btree {
void *data;
struct btree *left;
struct btree *right;
} ;

在这里,我尝试对结构内容进行类型转换,以便可以打印它:

void print_inorder(btree *node)
{
if(node == NULL)
{
return;
}

print_inorder((struct btree*)node->left);

//error here in these 5 lines: the node->data->invName, invPartNo, etc.
printf("Name: %s\n", (char)node->data->invName); //my incorrect attempt
printf("Part Number: %.5d\n", (int*)node->data->invPartNo);
printf("Quantity on hand: %d\n", node->data->invQOH);
printf("Unit Cost: %0.2f\n", node->data->invUnitCost);
printf("Price %0.2f\n\n", node->data->invPrice);

print_inorder(node->right);
}

最佳答案

我可以假设您遇到了编译错误。

不要犹豫使用更多括号,而您忘记将 void* 转换为 item*:

printf("Name: %s\n", ((item*)(node->data))->invName);
printf("Part Number: %.5d\n", ((item*)(node->data))->invPartNo);
printf("Quantity on hand: %d\n", ((item*)(node->data))->invQOH);
printf("Unit Cost: %0.2f\n", ((item*)(node->data))->invUnitCost);
printf("Price %0.2f\n\n", ((item*)(node->data))->invPrice);

关于c - 类型类型转换节点结构以打印内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23730771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com