gpt4 book ai didi

c - 尝试在嵌套结构中分配值不起作用

转载 作者:行者123 更新时间:2023-11-30 18:23:51 25 4
gpt4 key购买 nike

我试图使用嵌套结构来表示我要写入文件的一些数据,但是当我尝试分配第三个数据成员及以后的值时,该值不会被分配。示例:

typedef struct {
short numFields;
char *datasetID;
double month;
double day;
} TestHeader;

typedef struct {

TestHeader header;

} TestFile;

int main()
{

TestFile* lre = malloc(sizeof(TestFile));

lre->header.numFields = 2;
lre->header.datasetID = "BLAHBLAH";
lre->header.month = 5.0;
lre->header.day = 6.0;

printf("%d, %s, %d, %d\n", lre->header.numFields, lre->header.datasetID, lre->header.month, lre->header.day);
}

输出是:

2, BLAHBLAH, 0, 0

为什么?

最佳答案

因为您使用了错误的 printf() 说明符,请尝试

printf("%d, %s, %f, %f\n",
lre->header.numFields,
lre->header.datasetID,
lre->header.month,
lre->header.day
);

此外,在将字符串文字分配给char指针时要小心,字符串文字是只读的,指向它的指针并不反射(reflect)这一点,因此您可能会意外地尝试修改它,从而导致未定义的行为。

关于c - 尝试在嵌套结构中分配值不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48832269/

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