-4
淨無效的指針是包含realloc()的:用C
typedef struct net{
int numele;
struct net **e;
} net;
下面的代碼引發錯誤的結構:
realloc(): invalid pointer
的realloc的導致的問題時,它被訪問,並給出了以上錯誤。我不明白爲什麼。如果你認爲這部分代碼沒有問題,讓我知道,因爲整個代碼是800行,所以我不認爲我可以在這裏發佈它。
void add(net *n, net *ne) {
if(n->numele==0) {
n->e = (net **)malloc(sizeof(net *));
n->e[0] = ne;
n->numele = 1;
} else {
n->e = (net **)realloc(n->e, (1 + n->numele)*sizeof(net *));
n->e[n->numele] = ne;
n->numele = n->numele + 1;
}
}
籃網n
和ne
已經被初始化其他地方的代碼,所以你可以假設他們不會爲空。
[請參閱此討論,爲什麼不在'C'中投射'malloc()'和家族的返回值。](http://stackoverflow.com/q/605845/2173917)。 –
您介意創建一個[___MCVE___](http://stackoverflow.com/help/mcve)? –
@SouravGhosh - 如果你輸入標記'[mcve]',我學會了一個整潔的功能,擴展到[mcve]。 – StoryTeller