gpt4 book ai didi

c - 无法在结构中赋值

转载 作者:太空宇宙 更新时间:2023-11-04 08:42:01 25 4
gpt4 key购买 nike

我已经声明了结构:

typedef struct keyValuePairs{
char* type;
char* key;
char* valueType;
char* value;
} keyValueType;

keyValueType keyValuePairs[1000];

并且在函数中将局部变量声明为:

char key[500];
char value[500];

将键值对值保存为:

key[i]="abc";
value[i]="xyz"

我已将这些局部变量分配给全局变量:

keyValuepairs[1].key=key.

一旦我退出函数,结构中分配的值就会丢失。有人可以解释我哪里出错了吗?请注意我是 C 的新手。

最佳答案

当您在函数中时,keyvalue 变量都是指向堆栈中分配的数组的指针。在 keyValuepairs[1].key=key 之后,全局变量指向堆栈中的相同位置。退出函数后,这些数组所在的内存将被重新使用。

我建议您阅读 C 中的静态分配与动态分配

关于c - 无法在结构中赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23174665/

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