にデータを入力するときは、curr->data
最初にを実行してメモリを割り当てますcurr = (NODE*) malloc (sizeof(NODE));
。次に、リストを作成し、最終的にはそれを印刷します。プログラムのどこかで、使用したメモリを解放する必要がありますが、いつ実行するかわかりません。リストを作成した後、またはリストを印刷した後?または私はこれを行うことができますか?
printf("How many elements do you want to make? ");
scanf("%d", &NumElem);
head = NULL;
for (i = 0; i < NumElem; i++)
{
//memory allocate
curr = (NODE*)malloc(sizeof(NODE));
printf("Number %d: ", i+1);
scanf("%d", &curr->num);
FLUSH;
if (head == NULL)/*beginning of the list*/
{
curr->next = head;
head = curr;
*tail = curr;
}
else /*adding on the list*/
{
curr->next = head;
head = curr;
}
free (curr);
}//for
現在のノード内にデータを配置した後、毎回解放できますか?