C言語なら俺に聞け! Part 115
■ このスレッドは過去ログ倉庫に格納されています
0222デフォルトの名無しさん
2005/10/01(土) 09:20:31最近の PC の OS なら間違いなく main 終了時に自動的にメモリが開放される。
まあ、本当はちゃんと開放した方がいいとは思う。
ここでは、プログラムが長くなるから省略したと好意的に解釈しておく。
開放方法も説明しなくちゃいけないし。
> それと2度目の while の直前で a = b してるけどこれってなんの為にしてるんですか?
色々プログラムを書き換えた時に、消し忘れたんじゃないかな?
他にも色々と洗練されてない。
書き換えるならこんなところか。
int main() {
struct list *a, *b;
char str[16];
for(b = NULL; ; b = a) {
printf("整数を入力(Eで終了)-->");
scanf("%s", str);
if(strcmp(str, "E") == 0) break;
a = malloc(sizeof(struct list));
a->num_data = atoi(str);
a->nextlist = b;
}
printf("入力された整数は");
for( ; a != NULL; a = a->nextlist) {
printf("%d, ", a->num_data);
}
return 0;
}
■ このスレッドは過去ログ倉庫に格納されています