我使用VC2010,当我尝试使用struct
替换static
来调试我的程序时,我得到了
ht_array.exe中0x000f18e7处的未处理异常:0xC00000FD:堆栈 溢出。
它在主要的第一行
#define BUCKETS 64
#define B_ENTRIES 50000
void main(int argc, char **argv)
{
static fpinfo hash_table[BUCKETS][B_ENTRIES];
static tanker_record tr[100];
....
答案 0 :(得分:3)
因为64 * 50000 * sizeof(fpinfo)
字节对于您的堆栈来说显然太大了。对于static
,变量被分配在不同的内存区域中,并且适合它。
答案 1 :(得分:2)
删除static
表示hash_table
现在是一个堆栈变量,其大小对于堆栈来说太大了。
static
个变量存储在其他位置(请参阅此question)。