即使兩個文件每個都有2^14個值,我也會得到此代碼的段錯誤。誰能告訴我爲什麼。分段錯誤 - 未知原因
#define N 128
#include<stdio.h>
#include <malloc.h>
int A[N][N];
int B[N][N];
int C[N][N];
void mmul();
int main()
{
int p,q;
FILE *fp;
fp=fopen("A.txt","r");
if(fp=NULL)
printf("Error\n");
printf("A");
for(p=0;p<(1<<7);p++)
{
for(q=0;q<(1<<7);q++)
{
fscanf(fp, "%d", &A[p][q]);
}
}
fclose(fp);
fp=fopen("B.txt","r");
if(fp=NULL)
printf("Error\n");
for(p=0;p<(1<<7);p++)
{
for(q=0;q<(1<<7);q++)
{
fscanf(fp, "%d", &B[p][q]);
}
}
fclose(fp);
printf("here");
mmul();
}
void mmul()
{
int i,j,k;
unsigned int sum;
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
sum=0;
for(k=0;k<N;k++)
{
sum=sum+(A[i][k]*B[k][j]);
}
C[i][j]=sum;
}
}
}
如果你運行這個平臺調試器(GDB,等等),你可能會被告知*立即*是什麼導致seg-fault,這段代碼很可能是唯一引用原始指針的東西:FILE * fp和您的賦值,而不是評估檢查,爲NULL。 – WhozCraig
-1我只是偷看了3個被標記爲相關的隨機問題,並在所有這些問題中發現了使用調試器或通過valgrind運行的建議。這清楚地表明你沒有[看看周圍](http://stackoverflow.com/faq#questions)那麼多。 – Massimiliano