3

次のように malloc される配列を含む型構造体を C で定義する必要があります。

#include <stdio.h>
#include <stdlib.h>

typedef struct mine
{
    int N;
    double *A;
} mine;

int main(int argc, char** argv) 
{
    int i;
    mine *m=malloc(sizeof(mine));
    printf("sizeof(mine)=%d\n",sizeof(mine));
    scanf("Enter array size: %d",&(m->N));
    m->A=malloc((m->N)*sizeof(double));
    for(i=0; i < m->N; i++)
        m->A[i]=i+0.23;
    printf("First array element: %lf",m->A[0]);

    return (EXIT_SUCCESS);
}

プログラムはコンパイルおよび実行され、整数の割り当ては正常に機能しているようです。ただし、アレイは正常に機能していません。

助言がありますか?mをポインターのままにしたい(関数などに渡すため)。

ありがとう。

4

2 に答える 2