这是怎么回事?

[复制链接]
2668|3
 楼主| jinlehuang 发表于 2011-11-28 16:23 | 显示全部楼层 |阅读模式
编译时出现这条语句
GUI.C(215): error C241: '_cursorcov': auto segment too large
这是为什么?源码:
/**************************异或函数********************************/
unsigned char **cursorcov(unsigned char **stylen,unsigned char n)
{
unsigned char stylecursorb[4][32],i,j;
// stylecursorb=calloc(n,(32*(sizeof(unsigned char))));
for(i=0;i<n;i++)
for(j=0;j<32;j++)
{
  stylecursorb[i][j]==stylen[i][j]^stylecursor[i][j];
}
return stylecursorb;
}
sjl2006 发表于 2011-11-29 17:16 | 显示全部楼层
unsigned char stylecursorb[4][32] 你的这个局部变量定义非常危险,n大于4时会有内存越界。应该用下面注掉的那个,把calloc的结果赋给一个指针类型的stylecursorb。
 楼主| jinlehuang 发表于 2011-12-1 09:08 | 显示全部楼层
因为注释掉的那个同样也是这个错误 所以注释掉用数组代替试一下结果还是这样才发了个帖子
mxh0506 发表于 2011-12-1 11:54 | 显示全部楼层
要动态分配存储器的话必须有足够大的“堆”,看看你的链接设置里“堆”是不是足够大;而自动变量是分配在“栈”里,你的“栈”开了多大,能容纳下这么长的数组?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:知识源于积累,成功源于执着!

2

主题

30

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部