【发布时间】:2011-07-26 21:08:40
【问题描述】:
我可以很容易地在堆栈上设置一个结构:
struct sArray
{
TCHAR sName[512];
};
struct sArray sKeys[2048] = {0};
但这占用了太多的堆栈空间。
相反,我想把它全部放在堆上,所以我想出了这个:
struct sArray
{
TCHAR *sName;
};
struct sArray *sKeys = (sArray *) calloc(2048, sizeof(sArray));
如何为 sName 动态分配内存?我试过了,它没有编译:
TCHAR *sKeys[0].sName = (TCHAR *) calloc(512,sizeof(TCHAR));
我真的在这里忽略了一些东西。有人可以帮忙吗?谢谢。
【问题讨论】:
-
我试过这个:
struct sArray { TCHAR *sName; // Dynamically sized }*sKeys[2048]; for (DWORD i=0;i<2048;i++) sKeys[i] = (sArray *) calloc(1,sizeof(sArray));我应该对 1 做 calloc 吗?