gpt4 book ai didi

c - 如何为 C 结构体中的 char 指针分配内存?

转载 作者:行者123 更新时间:2023-11-30 20:05:33 25 4
gpt4 key购买 nike

我正在使用下面的这个结构,但是如果我想从一个大文件中获取所有字符串,它是有限的......

typedef struct arr {
char name[200]; // Could be a number higher than 200 here...
} array;

现在,如果我使用...

typedef struct arr {
char *name;
} array;

那么,是否可以为结构体(数组)内部的 char 指针(*name)分配内存?

我不知道我做错了什么,我为数组分配了内存,但不知何故,我收到了段错误错误。带有 name[200] 的结构没有给我任何错误。具有 *name 的结构可以。

array *str = malloc(sizeof(*str));

我是否错过了分配其他东西?

最佳答案

Did I miss to allocate something else?

是的。您为 array 分配了内存,但没有为 array 内的 name 分配了内存。

您需要:

array *str = malloc(sizeof(array));
if ( str == NULL )
{
// Deal with the error
}

str->name = malloc(200);

关于c - 如何为 C 结构体中的 char 指针分配内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30409069/

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