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

Dúvida no Ex. 4 da Aula 1 - Matrizes

Fiz o código, mas na hora de compilar, ele dá erro invalid conversion 'void' to 'int', qual o erro ?

Segue o código.

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

char** mapa;
int linhas;
int colunas;

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

    fscanf(f, "%d %d", &linhas, &colunas);
    alocamapa();

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

    fclose(f);
}

void alocamapa() {
    mapa = malloc(sizeof(char*) * linhas);

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

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

    free(mapa);
}

int main() {

    lemapa();

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

    liberamapa();
}
2 respostas

Oi Bernardo, em que linha acontece esse erro?

Compilei aqui e parece tudo certo. A única coisa que fiz (por hábito) foi puxar a declaração da função alocamapa para antes do primeiro uso dela, mas suponho que não seja esse o seu problema.

solução!

Obrigado pela ajuda, mas já resolvi o problema