child_prog()
からへの配列を返そうとしていましたmain()
。コードは次のようになります。
#include<stdio.h>
#include<stdlib.h>
int* child_prog(int some_input);
void main(void){
int C[10];
int some_input;
C = child_prog(some_input);
}
int* child_prog(int some_input){
static int out[10];
// ...
// ... some wizardry
return out;
}
これで、コンパイラは、 (タイプである)から返された値を(タイプC
である)に割り当てることができないというエラーを生成します。確かに、私が10のメモリを作成すると、プログラムは正常に動作します。しかし、コンパイラが(として定義された配列、したがってポインタとして定義された)から返された値(として定義された配列、したがって再びポインタ)を割り当てることができない理由がわかりません。int[]
child_prog
int*
C
int*
malloc
ints
C
C[10]
child_prog
static int out[10]