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_progint*Cint*mallocintsCC[10]child_progstatic int out[10]