[英]array of typedef struct pointers
我的頭文件中有以下內容
typedef struct tree_node* TreeNode;
struct tree_node{
int value;
void *data;
TreeNode parent;
TreeNode left;
TreeNode right;
};
創建一個treenode我正在做以下
TreeNode createTreeNode(int value, void *data){
TreeNode node;
node = malloc(sizeof(TreeNode*));
if(node == NULL){
printf("TreeNode malloc failed!!\n");
exit(EXIT_FAILURE);
}
node->data = data;
node->value = value;
node->parent = NULL;
node->right = NULL;
node->left = NULL;
return node;
}
現在我要創建TreeNodes數組...我該怎么做? 我在想
TreeNode *treeNodes;
treeNodes = malloc(26 * sizeof(TreeNode));
接着
treeNodes[a_number_between_0_to_25] = createTreeNode(intNodeValue, NULL);
node = malloc(sizeof(TreeNode*));
只會分配4個字節(或8個字節,具體取決於指針的大小)。 錯了 使用sizeof(struct tree_node);
否則最終會導致細分違規。
除此之外,您的代碼看起來還不錯。 是的,這就是創建數組的方式。
同時查看VLA(可變長度數組)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.