【发布时间】:2015-12-08 22:03:40
【问题描述】:
我有这个代码
typedef long long int ll;
#define MOD 1000000007
ll t,n,total,answer[2][1025];
int arr[100001];
cin>>n;
for(int i=0;i<n;i++)
cin>>arr[i];
memset(answer,0,sizeof(answer));
memset(arr,0,sizeof(arr[0]*n));
for(int i=1; i<n; i++)
{
for(int j=0; j<=1024; j++)
{
int index1=(i-1)%2;
int index2=j^arr[i];
ll pre1=answer[index1][j]%MOD;
ll pre2=answer[index1][index2]%MOD;
answer[(i%2)][j]=(pre1+pre2)%MOD;
}
}
我不知道为什么这段代码给出了 RE(SIGSEGV)。有人可以帮忙吗?
【问题讨论】:
-
你在哪里给
n赋值?MOD的值是多少?ll是什么?除此之外:该程序的存在权是什么(除了崩溃......)? -
好的,你编辑了它,使 cmets/answers 无效:( 接下来 - 你在调试器下运行它时发现了什么?哪一行产生了错误,相关的 var 值是什么?跨度>
-
我投票决定将此问题作为题外话结束,因为持续编辑更改源代码的速度比阅读速度快。
-
@MartinJames 这不是结束问题的理由。海报应该在其书写方式存在问题时澄清问题。
-
注意
sizeof(arr[0]*n)中的错误)如果您真的打算用零覆盖所有输入,那么您失败了。但是,如果您打算用零覆盖所有内容,输入是什么?
标签: c++ runtime-error segmentation-fault