私は組み込みシステム用にこのかなり大きなコードを書きました。関数は、ループ内で値を計算して calloc 構造体に代入するために使用されます。コードにバグがあり、特定して修正するのに時間がかかりました。必要に応じて私の経験を共有する前に、他の誰かがバグを指摘できるかどうかを確認したいと思います.
宣言ブロック:
int *arr;
int i, num;
printf("Enter number of elements: ");
scanf("%d", &num); //Assume num>=0
arr = calloc(num, sizeof(int));
if (arr == NULL)
return;
i = num;
free() の呼び出し時に例外をスローするのは、次のコードのブロックのうちどれですか?その理由は?
for (i; i > 0; i--) {
arr[num - i] = i;
}
free(arr);
また
while (i--) {
arr[num - i] = i;
}
free(arr);