【发布时间】:2010-10-07 15:54:54
【问题描述】:
我已经尝试过这个指针数组的例子。我收到错误“函数 main 中的非法初始化”
int main()
{
int a[]={1,2,3,4,5};
int b[]={1,2,3,4,5};
int c[]={1,2,3,4,5};
int *p[3]={a,b,c};
int i;
clrscr();
for(i=0;i<3;i++)
printf("%d - %u\n",*p[i],p[i]);
getch();
}
如果我在数组声明中使用静态 int 而不是 int,它可以正常工作。谁能告诉我这里的静态效果。非常感谢。
【问题讨论】:
-
哪一行产生了这个错误,你使用的是哪个编译器? VS2008 构建这个干净
-
正确编译,在 gcc 中没有错误;你包括哪些头文件?
-
前 3 个数组声明产生了错误。我正在使用涡轮增压器。
-
我包括stdio和conio头文件
-
当我看到帮助时,它说初始化必须是静态或全局变量或常量表达式的地址。
标签: c arrays pointers initialization