gpt4 book ai didi

c - 在 typedef 结构中声明的 Malloc char 数组

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

我在 typedef 结构中有一个 char 数组,它太大了(大约 260k)

#define LENGTH 260000

typedef struct {
int longSize;
char hello[LENGTH ];
} p_msg;

我想在这个 char 数组上使用 malloc,如下所示:

typedef struct {
int longSize;
char * hello= malloc(sizeof(char));
} p_msg;

但它给了我错误:

error: expected ':', ',', ';', '}' or '__attribute__' before '=' token

如何 malloc char 数组?

最佳答案

您无法从结构定义中调用函数。您应该简单地保留第一个结构体定义,其中包含大字符串,然后在想要创建结构体时执行 malloc(sizeof(p_msg))

或者您可以将其与指针一起保留在内部,并记住每次创建结构实例时都使用 malloc() 的结果初始化该指针。

如果您有一个通过指针获取结构的函数,您可以这样做:

int extMsg(p_msg *msgBuffer)
{
msgBuffer->longSize = 12;
msgBuffer->hello = malloc(12);
snprintf(msgBuffer->hello, 12, "hello %d", 42);
return 0;
}

关于c - 在 typedef 结构中声明的 Malloc char 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38044720/

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