首页 > 解决方案 > printf 下的分段错误(核心转储)

问题描述

#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;
}

你好我想知道为什么我的代码不想运行第一个 printf,给出错误:“分段错误(核心转储)”,如果我删除 printf 下面的所有内容,它将再次工作

标签: c

解决方案


x并且y未初始化,因此您会受到未定义行为的影响。


推荐阅读