gpt4 book ai didi

c - malloc-ing 一个字符数组

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

我有一个包含 char 数组的结构,如下所示:

typedef struct{
char *name[128];
} arr;

我想我之前读过为此分配内存的正确方法是:

arr thisOne;
thisOne->name = malloc(sizeof(char) * 128);

但是,这会导致错误:

incompatible types when assigning to type ‘char *[128]’ from type ‘void *’

尝试从 malloc 转换返回值没有帮助,因为当我需要一个 char *[128] 时,我只是得到一个 char *。我在这里做错了什么?

最佳答案

嗯,name 是指向 char 的指针数组。您可能需要一个字符串,因此需要一个指向 char 的指针:

typedef struct{
char *name ;
} arr;


arr thisOne;
thisOne.name = malloc(sizeof(char) * 128);

在这种情况下,包括字符串的最大大小是明智的:

typedef struct{
char *name ;
size_t max ;
} arr;

关于c - malloc-ing 一个字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26770534/

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