为什么会出现 Segmentation fault (core dumped)

「已注销」 2014-08-02 04:08:56
将数组 hash[16000000] 定义在main函数中会出现Segmentation fault (core dumped) 的问题,定义在main函数之外则一切正常
这是怎么回事啊,

#include<iostream>
#include<cstring>
using namespace std;

int hash[16000000];

int main(){
int change[256];
string text;
int N,NC,total=0,value=0;
int hadd,i=0;
memset(change,-1,sizeof(change));
cin>>N>>NC;
cin>>text;
for(i=0;text[i]!='\0';i++)
{
if(change[text[i]]==-1)
change[text[i]]=1;
}
for(i=0;i<256;i++)
{
if(change[i]!=-1)
change[i]=value++;

}
for(i=0;text[i+N-1]!='\0';i++)
{
hadd=0;
for(int j=i;j<N+i;j++)
{
hadd=hadd*NC+change[text[j]];
}
if(!hash[hadd])
{
hash[hadd]=1;
total++;
}
}
cout<<total<<endl;
return 0;
}
...全文
1861 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2014-08-04
  • 打赏
  • 举报
回复
栈<全局数据<堆<文件映射<文件<磁盘<磁盘阵列<云存储
bluesnail1986 2014-08-02
  • 打赏
  • 举报
回复
段错误 全局变量可以给你足够的空间,栈不够 不要定义这么大的数组,即便没报错,也会有很多问题。

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧