【发布时间】:2012-10-10 15:29:42
【问题描述】:
我已经阅读了很多关于此的帖子,但似乎我的问题更具体一些。我想我会设法分配一个动态二维数组。
由于现有代码,我必须使用 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],这很可能不是您想要的。 -
旁注:以上不能是真实代码,不会编译。我不相信
iCount * sizeof Buffer*。 -
对,应该是 [i]。 @unwind:我知道,正如我写的那样,它不会编译。
标签: c arrays pointers malloc typedef