【发布时间】:2022-07-07 19:56:02
【问题描述】:
我正在尝试解决 3Sum 问题,但我不知道为什么我总是收到 ''*** stack smacking detected ***: terminate'' 错误,代码如下:
#include <stdio.h>
int proc(int t[], int n, int* r) {
int c=0;
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
for(int k=0; k<n; k++){
if(i!=j!=k){
if(t[i]+t[j]+t[k]==0){
r[c]=t[i];
c++;
r[c]=t[j];
c++;
r[c]=t[k];
c++;
}
}
}
}
}
return c;
}
void main(){
int t[6]={-1,0,1,2,-1,-4}, r[6], c;
c=add(t, 6, r);
for(int i=0; i<c; i++)
printf("%d ", r[i]);
}
【问题讨论】:
-
与您的问题无关,但
i!=j!=k是错误的。 -
add(...)函数是否调用了对proc的调用?应该是int main(),而不是void main()。