我有一个int
的数组,表示为int* myInts[100];
当我尝试打印0 th 索引时,
printf("%d\n",myInts[0]);
我收到以下编译器警告:
警告:格式'%d'需要类型为'int'的参数,但参数为2 类型'int *'[-Wformat =]
为什么会这样?
答案 0 :(得分:4)
如果您需要int
数组,请将其声明为
int myInts[100];
如果您想要int *
数组,请将其打印为
printf("%p\n", (void *)myInts[0]);
答案 1 :(得分:1)
int* myInts[100];
向整数声明一百个指针的数组,而不是你描述的一百个整数。
您需要使用:
int myInts[100];
代替。
答案 2 :(得分:1)
int* myInts[100];
它表示100个整数指针的数组。
int myInts[100];
它表示100个整数的数组。
printf("%p\n", (void *)myInts[0]);