gpt4 book ai didi

c - 为指向指针数组的指针分配空间

转载 作者:行者123 更新时间:2023-11-30 15:34:39 24 4
gpt4 key购买 nike

美好的一天。我有这个: MAP_ITEM **映射我认为是指向指针数组的指针(如果我错了请纠正我),我必须为其分配空间。我可以使用 malloc 为 1 个指针分配空间,但不知道如何执行此操作。非常感谢您的帮助。

最佳答案

这是一个示例,是为与 char ** 一起使用而编写的,但您可以根据自己的目的进行修改:

char ** allocMemory(char ** a, int numStrings, int maxStrLen)
{
int i;
a = calloc(sizeof(char*)*(numStrings+1), sizeof(char*));
for(i=0;i<numStrings; i++)
{
a[i] = calloc(sizeof(char)*maxStrLen + 1, sizeof(char));
}
return a;
}

这样调用它:(对于 10 个字符串的数组,每个字符串最多 79 个字符(为 NULL 项留一个)

char **arrayOfString;

arrayOfString = allocMemory(arrayOfString, 10, 80);

//

您还需要释放使用allocMemory创建的内存

void freeMemory(char ** a, int numStrings)
{
int i;
for(i=0;i<numStrings; i++)
if(a[i]) free(a[i]);
free(a);
}

这样称呼:

freeMemory(arrayOfStrings, 10);

关于c - 为指向指针数组的指针分配空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23201008/

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