-4
我想在C創建從輸入鏈接的列表如下:防止內存重用在退出範圍在C
int s;
scanf("%d", &s);
struct Node n = {0, NULL};
struct Node *prev = &n;
for (int i = 0; i < s; ++i)
{
struct Node cur = {0, NULL};
scanf((i<s-1)?"%d,":"%d", &cur.data);
//printf("%d\n", &cur);
prev->next = &cur;
prev = &cur;
}
n = *(n.next);
但是,它似乎是小人的記憶被重新使用時,循環收益到下一次迭代。結果,該列表包含一個自我指涉節點。
有沒有辦法來防止再使用這樣的記憶?
我知道我可以使用malloc和循環之前分配所有的內存,但是這需要有多少元素在鏈表知識,我希望能消除對大小初始請求。
請閱讀'malloc',堆等 –
http://stackoverflow.com/questions/7314581/simple-linked-list-c可能是一個啓動器 –
>我知道我可以使用malloc,並分配所有的在循環<'malloc'之前的內存專門用於在初始內存量未知時分配內存。你可以在循環體內調用它 – myaut