gpt4 book ai didi

c - 如何将值传递给结构体的指针成员

转载 作者:行者123 更新时间:2023-11-30 20:17:19 26 4
gpt4 key购买 nike

我在内部结构中定义了包含指针成员的嵌套结构。例如,如何将值传递给指针成员(例如 6 个元素的数组)。它正在编译但不工作。

如何将值传递给该指针?

        typedef struct
{
int Nx;
int Nu;
float *x_initial;
}typeparam;

typedef struct
{
typeparam *param;
}typeram;

int main()
{

float x0[6]={-2.0,0.0,2.0,0.0,0.0,0.0};
typeram *ram, ram1;
ram= &ram1;

for (int i=0; i<6; i++)
{
ram->param->x_initial[i] = x0[i];
}

for (int i=0; i<6; i++){
printf("%1.6f\n",ram->param->x_initial[i] );
}
return 0;
}

最佳答案

您的代码的问题在于结构内部

typedef struct
{
typeparam *param;
}typeram;

定义了一个指针类型的数据成员

    typeparam *param;

并且它未初始化并且具有不确定的值。您必须初始化数据成员,例如为 typeparam 类型的对象动态分配内存,并将分配的内存的地址分配给该数据成员。

例如

    #include <stdlib.h>

//...

typeram *ram, ram1;
ram= &ram1;

ram1.param = malloc( sizeof( typeparam ) );

然后在程序结束后不要释放分配的内存。

   free( ram1.param );

   free( ram->param );

否则,由于使用具有不确定值的数据成员,程序会出现未定义的行为。

关于c - 如何将值传递给结构体的指针成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58115413/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com