printf以下的分段故障(堆芯倾倒) #包括 int main(){ int H,W,X,Y,cont=1,j=0,X,Y; scanf(“%d%d%d%d”、&H、&W、&X、&Y); 字符矩阵[H][W+1]; for(int i=0;i
printf以下的分段故障(堆芯倾倒) #包括 int main(){ int H,W,X,Y,cont=1,j=0,X,Y; scanf(“%d%d%d%d”、&H、&W、&X、&Y); 字符矩阵[H][W+1]; for(int i=0;i,c,C,x和y未初始化,因此您会受到未定义行为的影响。这里,当您给出分段错误时,意味着您将超出((martiz[])的分配存储空间。 例如: 如果我们有一个数组名x[4] 然后我们要打印x[5] 您将收到分割错误 因此,请查看您的代码,找出程序超出分配空间的那一行。否则,请注意,您应该在定义数据类型时初始化它们。您提供了什么输入?我不认为有任何保证,崩溃行上方的代码会产生任何输出。 #include <stdio.h> int main(){ int H, W, X, Y, con
x
和y
未初始化,因此您会受到未定义行为的影响。这里,当您给出分段错误时,意味着您将超出((martiz[])的分配存储空间。
例如:
如果我们有一个数组名x[4]
然后我们要打印x[5]
您将收到分割错误
因此,请查看您的代码,找出程序超出分配空间的那一行。否则,请注意,您应该在定义数据类型时初始化它们。您提供了什么输入?我不认为有任何保证,崩溃行上方的代码会产生任何输出。
#include <stdio.h>
int main(){
int H, W, X, Y, cont=1, j=0, x, y;
scanf("%d %d %d %d", &H, &W, &X, &Y);
char matriz[H][W + 1];
for(int i=0; i<H; i++){
scanf("%s", matriz[i]);
}
printf("%s", matriz[3]);
while(j<4){
while(1){
y=y - 1;
if(matriz[X][Y]==matriz[x][y])
cont++;
else
break;
}
j++;
}
return 0;
}