gpt4 book ai didi

c - 在 C 中,如何为我的结构分配空间?

转载 作者:行者123 更新时间:2023-11-30 19:12:10 24 4
gpt4 key购买 nike

我构建了一个函数,我试图用它来为我的结构动态分配内存,如下所示。只是似乎无法让它发挥作用

typedef struct My_Struct
{
char **array
}MyStruct

MyStruct * createMyStruct(int length)
{
MyStruct->array = malloc(sizeof(char *) * (length + 1));
}

int main(void)
{
MyStruct *new1 = createMyStruct(10);
return 0;
}

最佳答案

这很简单,只需分配 sizeof(MyStruct) 并转换为 MyStruct ptr:

MyStruct * createMyStruct(int length)
{
MyStruct* s = malloc(sizeof(MyStruct));
s->array = malloc(sizeof(char*) * (length + 1));
return s;
}

顺便说一句,结构体中通常没有任何指针,而只有固定大小的数组或至少有一个 char*[] 而不是 char* 因为结构通常具有固定大小以便于分配。如果您使用我上面的代码,请不要忘记分配 char*char** 也引用了,因为我代码中的 malloc 仅分配指针而不分配字符串本身

关于c - 在 C 中,如何为我的结构分配空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37650088/

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