大家好,我已经触摸C了,所以我真的生锈了。我写了一个小程序来创建一个使用两个动态数组的矩阵。但是,我收到这个警告,我不明白为什么?我想我不太清楚指向指针的指针。有人能帮我指出我的问题在哪里吗?谢谢。警告:从不兼容的指针类型初始化
sm.c: In function ‘main’:
sm.c:11:13: warning: initialisation from incompatible pointer type [enabled by default]
sm.c: In function ‘makeMatrix’:
sm.c:27:3: warning: return from incompatible pointer type [enabled by default]
#include
#include
typedef int (**intptr)();
intptr makeMatrix(int n);
int main(int argc, char *argv[]) {
int n = 2;
int **A = makeMatrix(n);
if(A) {
printf("A\n");
}
else printf("ERROR");
}
intptr makeMatrix(int size) {
int **a = malloc(sizeof *a * size);
if (a)
{
for (int i = 0; i < size; i++)
{
a[i] = malloc(sizeof *a[i] * size);
}
}
return a;
}
2012-04-10
HHC
+1
'()'在'intptr'' typedef'中做什么? –
2012-04-10 04:01:54
+0
[堆栈溢出不是语法检查器](http://meta.stackexchange.com/a/128596/172496) –
2012-04-10 04:05:23
+2
幸运的是,这在语法上很好。 –
2012-04-10 04:06:36