我無法理解它爲什麼會顯示此錯誤。 我從來沒有遇到過這樣的錯誤。 這裏是我的代碼,你可以找出錯誤或它的原因:我在c程序中收到內存錯誤(coredump)錯誤消息?
#include<stdio.h>
#include<math.h>
void dec2bin(int n,int bin[1000]){
int num = 0, index = 0, i;
while (n != 0){
bin[index] = n%2;
index++;
n = n/2;
}
}
int Sub(int a[100],int b[1000],int ac[100],int siz){
int i=siz-1,k=0;
for(;i>=0;i--){
if(b[i]){
a[k++]=ac[siz-i-1];
}
}
return k;
}
int sum(int a[100],int s){
int i,sum=0;
for(i=0;i<s;i++)
sum+=a[i];
return sum;
}
main(){
int b[1000],sub[100],a[100],n,i,s,count=0;
printf("Enter n: ");
scanf("%d",n);
for(i=0;i<n;i++){
printf("Enter number %d",i+1);
scanf("%d",&a[i]);
}
printf("Enter S: ");
scanf("%d",s);
int no=(int)pow(2.0,(float)n);
for (i=0;i<1000;i++)
b[i]=0;
for(i=0;i<no;i++){
dec2bin(i,b);
int siz=Sub(sub,b,a,n);
if(sum(sub,siz)==s)
count++;
}
printf("Subsets: %d",count);
}
而這個代碼立即顯示內存故障錯誤輸入的n
值後。
的valgrind的valgrind的valgrind – Dariusz
'的scanf( 「%d」,n)的;'應該是'的scanf( 「%d」,&n);'啓用編譯器警告和理解他們的意思 – DaV
您是否嘗試過使用調試器如果。? – Michael