我有一个函数,在其中使用了本地数组。我想返回指向它的指针,但是如果不手动分配内存,这是不可能的。因此我想知道是否可以像这样进行内存分配:
for(i = 0; i < 26; i++)
{
llist[i] = malloc(sizeof(SomeStruct));
}
可以这样稍后释放:
// (where ptr is a pointer to the first allocation in llist)
for(i = 0; i < 26, i++)
{
free(ptr);
ptr += sizeof(SomeStruct);
}
编辑:
看起来我不能这样做。如果只有指向第一个元素的指针,是否有任何方式可以释放所有内存?或者我应该采取完全不同的方法?
malloc(sizeof(SomeStruct))*26
吗? - K-ballomalloc(sizeof(SomeStruct) * 26);
还是malloc(sizeof(SomeStruct)) * 26;
? - providencemalloc(sizeof(SomeStruct) * 26)
,我的错。 - K-ballo