こんにちは、私はCに触れたので、いつかそれは本当に錆びています。私は2つの動的配列を使って行列を作成するための小さなプログラムを書いた。しかし、私はこの警告を受けていると私はなぜ理解していないのですか?私はポインタへのポインタについてはあまりよく分かりません。誰かが私の問題がどこにあるのかを指摘できますか?ありがとう。警告:互換性のないポインタ型からの初期化
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 <stdio.h>
#include <stdlib.h>
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;
}
'intptr'の' typedef'で ''()は何ですか? –
[スタックオーバーフローは構文チェッカーではありません](http://meta.stackexchange.com/a/128596/172496) –
彼にとっては幸運なことに、これは構文上問題ありません。 –