我有一個看起來像這樣的結構:malloc的結構與雙指針
typedef struct{
char* name;
int count;
Node **subnodes;
}Node;
我收到的名字和一個爲整個k元樹算過網絡之一,然後我重建樹。我如何malloc這個結構?
Node *n = NULL;
fun(n, buf); //call function fun
void fun(Node *n, void *buf){
//successfully extracted name and count from buf
// say count is 5, i.e. this node should have 5 subnodes and
// name is root
n = malloc(sizeof(*n)+strlen(name));
n->name = name;
n->count = count;
for(int i=0; i<n->count;i++)
fun(n->subnodes[i], buf+some_increment);
}
只要我第二次給我打電話,這個就崩潰了。我應該如何正確地使用malloc?我應該malloc - 每個子節點?
什麼是' count'?請發佈[最小,完整和可驗證示例]( http://stackoverflow.com/help/mcve)。沒有看到你的其他變數很難說。 –
我明白,但正如我在代碼中所評論的那樣,這是一個從網絡接收到的值,我證實它是一個正確的整數。把所有的代碼放在這個問題上都是不必要的。 – Neo
你'收到姓名並通過網絡計數'令我困惑。 你知道節點指向/應該指向哪個節點嗎?另外,至少在C++中不要使用NULL。 –