gpt4 book ai didi

c - 我正在尝试将动态内存分配给结构元素并出现段错误

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

我正在尝试为数组元素分配动态内存,但出现段错误这是代码:

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

struct Octstr
{
unsigned char *data;
long len;
long size;
int immutable;
};
int main()
{
struct Octstr *obj;
obj->data = (char*)malloc(16);
return 0;
}

最佳答案

您没有为 struct 本身分配内存:obj 未初始化。

您的代码的行为未定义。

要么 malloc 为它分配一些内存,要么使用自动存储持续时间:

struct Octstr obj;
obj.data = (char*)malloc(16);

最后,不要忘记平衡 malloc 调用与 free 调用。 (而且在C中也没有必要强制转换malloc的返回指针,并检查返回指针值以检查分配是否成功)。

关于c - 我正在尝试将动态内存分配给结构元素并出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41238603/

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