Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Duvida em CIII - Aula 1 Video 4

quando eu coloco meu código para rodar ele aparece o seguinte erro "falha de segmentação(imagem do núcleo gravada)" alguém sabe como resolver? segue abaixo o meu código

#include <stdio.h>
#include <stdlib.h>

char** mapa;
int linhas;
int colunas;

int main(){


    FILE* f;
    f = fopen("mapa.txt", "r");
    if(f == 0){
        printf("Erro na leitura do mapa\n");
        exit(1);
    }

    fscanf(f, "%d %d", &linhas, &colunas);
    printf("linhas %d colunas %d\n", linhas, colunas);

    mapa = malloc(sizeof(char*) * linhas);
    for(int i = 0; i < linhas; i++){
        mapa[i] = malloc(sizeof(char) * (colunas+1));
    }

    for(int i = 0; i < 5; i++){
        fscanf(f,"%s", mapa[i]); 
    }

    for(int i = 0; i < 5; i++){
        printf("%s\n", mapa[i]);
    }

    fclose(f);

    for(int i = 0; i < linhas; i++){
        free(mapa[i]);
    }

    free(mapa);
}
2 respostas

Oi Douglas,

Executei seu código aqui e não obtive nenhum erro.

A saída apareceu com sucesso:

linhas 5 colunas 10
|--------|
|...|..-.|
|..-|.@..|
|......-.|
|--------|

Qual comando você está utilizando para compilar e para rodar o seu arquivo? Outra coisa, como está o seu arquivo mapa.txt?

Abraço!

solução!

Eu consegui resolver. Tinha esquecido de colocar no arquivo "mapa.txt" o numero de linhas e colunas, quando acrescentei esse detalhe funcionou tranquilo. Mas obrigado pela atenção :)