私はCにまったく慣れていないので、関数内の配列を初期化しようとしました。
ただし、mainメソッドで値を出力したい場合は、常にセグメンテーション違反が発生するため、機能しません。
static void array(int *i)
{
int j = 0;
i = (int *) malloc(5 * sizeof (int));
for (j = 0; j < 5; j++) {
i[j] = j;
}
for (j = 0; j < 5; j++) {
printf("Hello: %d\n", i[j]);
}
}
/* Main entry point */
int main(int argc, char *argv[])
{
int j;
int *i = NULL;
array(i);
for (j = 0; j < 5; j++) {
printf("Hello: %d\n", i[j]);
}
return 0;
}
誰かがコードを修正して、それがどのように機能するかを説明できればいいのにと思います。