我已经阅读了大量关于此的帖子,但看起来,我的问题更具体。我想我会设法分配一个动态二维数组。为静态数组的动态数组分配内存
由于现有的代码,我必须使用一个typedef
这是一个静态数组。现在我想暂时存储未知数量的这些阵列。我用指针尝试了几个变体,但我甚至不能编译它。
下面的代码应该解释什么,我试图做的:
int iCount, i;
typedef unsigned char Buffer[1024];
Buffer * BufferArray=NULL;
BufferArray = malloc(iCount * sizeof Buffer*);
for(i=0;i<iCount;i++)
{
BufferArray[i] = malloc(sizeof(Buffer));
}
这是我的版本最少的错误。唯一的一个左边是
错误C2106:“=”左操作数必须是左值
我知道这个话题是乏味的发生往往不够。尽管如此,我已经对typedef
感到困惑,它已经是一个静态数组了。所以我想,在这里不需要**
指针。
感谢任何帮助。
注意:你正在分配'BufferArray [iCount]'而不是'BufferArray [i]',这很可能不是你想要的。 – Shahbaz
注意:以上不能为真码,不会编译。我不相信'iCount * sizeof Buffer *'。 – unwind
对,如果是[i]。 @unwind:我知道,它不会编译,正如我写的。 –