
c言語についてです。大学で、全てのセルを削除するコード(下記)で間違いを指摘し、修正せよ、という課題が出たのですが、
どこが間違いかわかりません。
一応、 解放したスペースの内容(構造体のメンバ)を使用してはいけない、というヒントが与えられています。
どなたか教えていただけるとありがたいです。
#include <stdio.h>
#include <stdlib.h>
#include "mleak.h"
#define malloc mleak_malloc
#define free mleak_free
/* 連結リストのセルを表すための構造体の宣言 */
struct cell {
int data;
struct cell *next;
};
int main(void)
{
struct cell *head = NULL; /* 最初は空のリスト */
struct cell *p;
atexit(mleak_finalize);
head = add_first(head, 11);
head = add_first(head, 22);
head = add_first(head, 33);
head = add_first(head, 44);
for (p = head; p != NULL; p = p->next)
printf("%d\n", p->data);
for (p = head; p != NULL; p = p->next) /* 間違い */
free(p);
return 0;
}
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
No.1:追記
課題の回答には直接は答えられません。
≫≫ for (p = head; p != NULL; p = p->next)
≫≫ free(p);→→→→→→→→→→→→↑
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
構造体のリスト削除
-
双方向リストのバブルソートに...
-
InvokeMemberメソッドとは何を...
-
C# ref引数のnull判定
-
コールバック関数はnullになら...
-
Aの値からBの値を除するとは??
-
「Aに対するBの割合」と「Aに対...
-
Enterキーを押されたら次の処理...
-
DWORDの実際の型は何でしょうか
-
#define _CRT_SECURE_NO_WARNIN...
-
C言語での引数の省略方法
-
long型の定数の末尾にLを付ける...
-
信頼区間の1.96や1.65ってどこ...
-
main.c:7:43: warning: implici...
-
20'(角度)の計算がわかりま...
-
ネットワークにつながっている...
-
2÷3などの余りについて
-
EXCELの関数"STDEV(標準偏差)"...
-
戻り値を返す関数の前に(void)...
-
複数桁10進数の*桁目だけを抽出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
構造体のリスト削除
-
C# ref引数のnull判定
-
ばばぬきプログラムについて
-
双方向リストのバブルソートに...
-
C♯ 2段構造のcontextMenuStrip?
-
別formの多重起動防止
-
バブルソートを使って文字列を...
-
InvokeMemberメソッドとは何を...
-
isset — 変数が宣言されている...
-
コールバック関数はnullになら...
-
構造体について
-
空のカラムを挿入
-
今度はdoubly linked listの問...
-
「Aに対するBの割合」と「Aに対...
-
Aの値からBの値を除するとは??
-
Enterキーを押されたら次の処理...
-
複数桁10進数の*桁目だけを抽出...
-
main.c:7:43: warning: implici...
-
C言語での引数の省略方法
-
エクセルで可視セルにのみ値貼...
おすすめ情報