構造体へのポインターのアドレスを関数に渡す必要があります。これにより、構造体の配列にメモリが動的に割り当てられ、値が入力されます。
呼び出しメソッドから、func1 から戻ると、構造体の配列を反復処理して、構造体変数の値を表示できるはずです。
動的に作成された構造体の配列を繰り返し処理しながら、ポインターのアドレスを構造体に渡す方法を誰かが説明できますか?
私のサンプルコードは次のようになります:
struct test {
int a;
int b;
};
void func1(int *n,struct test **testobj)
{
n=5;
*testobj = (struct test*) malloc(n*sizeof(struct test));
for(i=0;i<n;i++)
{
(*testobj)[i].a=1;
(*testobj)[i].b=2;
}
}
int main()
{
struct test testobj;int n;
func1(&n,&testobj);
for(i=0;i<n;i++)
{
printf("%d %d",(*testobj)[i].a,*testobj)[i].b);
}
free(testobj);
}