私は、Cで動的に成長する配列/データ構造体を作成しようとしています。以下に私が持っているCコードを示します。しかし、配列を出力すると、スナップショットに以下のようなランタイムエラーが発生します。何がうまくいかないのですか?これは、Windows-7上でMS-Visual C++ 2010(Free版)を使用してコンパイルされています。reallocを使用してこのCコードにエラーがありますか?
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int *a;
int i = 5;
if((a = (int *)malloc(i * sizeof(int))) == NULL) {
fprintf(stderr, "Error: failed malloc\n");
return 1;
}
for(i = 0; i < 5; i++)
a[i] = i;
printf("-- array after malloc\n");
for(i = 0; i < 5; i++)
printf(" a[%d] = %d\n", i, a[i]);
if((a = (int *)realloc(a, i * sizeof(int))) == NULL) {
fprintf(stderr, "Error: failed realloc\n");
return 1;
}
for(i = 0; i < 10; i++)
a[i] = i;
printf("\n-- array after realloc\n");
for(i = 0; i < 10; i++)
printf(" a[%d] = %d\n", i, a[i]);
free(a);
return 0;
}
'i'は4ではなく5 – orlp
@nightcrackerある:' i' 5ではなく4 :) –
(15文字):) woopsああ – orlp