美好的一天。我有这个:MAP_ITEM **映射我认为是指针数组的指针(请纠正我,如果我错了请),我必须为它分配空间。我可以使用malloc为1指针分配空间,但不知道如何做到这一点。帮助将非常感激。
答案 0 :(得分: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);
答案 1 :(得分:0)
导入stdlib.h 然后使用malloc函数。 一维数组的示例在哪里:
int* my_in_array = (int*) malloc(sizeof(int) * size_of_my_array);
请注意,malloc接收您要分配的字节数,因此sizeof将告诉您数据类型需要多少字节(在本例中为int,但它可以用于字符,结构......)和然后我将它乘以size_of_my_array,这是我的数组中元素的数量。
现在,请尝试为您解决此问题。