2017-08-29 19 views
-1

の配列の要素の文字列をコピー:私は指定された名前を持つ新しいノードを作成するには、このノード構造私は、次の問題を抱えている構造体

typedef struct NODE{ 
    struct NODE *sons[1024];    //this array will be used to store children pointers 
    char name[255]; 
    int leaf;     

}NODE; 

と、この機能を作りました。問題は、最初のprintfが正しい名前を表示し、2番目のprintfが正しい名前を表示しないことです。ループの名前を消去し...

NODE *AllocateNewNode(char *inputname) { 
    NODE *newnode; 
    newnode = (NODE *)malloc(sizeof(NODE)); 



    memset(newnode->name, '\0', sizeof(newnode->name)); 


    strcpy(newnode->name, inputname);  

    printf("node %s created\n", newnode->name); //right name in the output 


    int i = 0; 
    for (i = 0; i <= 1024; i++) { 

     newnode->sons[i] = NULL; 
    } 

    newnode->leaf = 1; 


    printf("node %s created\n", newnode->name);  //no name in the output 

    return newnode; 
} 

答えて

1

あなたの息子配列の末尾を超えて書いている理由私は自分自身を説明することはできませんように思えます。

for (i = 0; i < 1024; i++) {は、配列0 ... 1023に1024要素しかないためです。

+0

wooooops、ありがとうございました – Speck

+0

@Speckこれはあなたが期待していた答えであれば、それを受け入れるべきです。 –

関連する問題