我对 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;
}
如果有人可以修复代码并解释它是如何工作的,那就太好了。