簡體   English   中英

typedef結構指針數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM