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

[Error] invalid conversion from 'void*' to 'char*' [-fpermissive]

Estou com erro e não entendo o porque, sendo que esta igual o do professor.

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

// matriz 5x10
char** mapa;
int linhas;
int colunas;

int main() {

FILE* f; 

f = fopen("mapa.txt", "r");
if(f == 0) {

    printf("Erro arquivo mapa não encontrado");
    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++) {
 }

    for(int i = 0; i < 5; i++){

    fscanf(f, "%s", mapa[i]);

}

for(int i = 0; i < 5; i++) {

    printf("%s\n", mapa[i]);

}

for(int i = 0; i < linhas; i++) {

    free(mapa[i]);
}
    free(mapa);

fclose(f);
}
4 respostas

Olá Marcelo,

aqui compila normalmente (se eu não colocar a flag -ansi). Você pode me passar a versão do seu compilador? Pode mandar toda a saída de gcc -v mesmo...

Estou utilizando o Dev C++ versão 5.11

solução!

Fala Marcelo, tudo bom?

Comigo aconteceu o mesmo problema.Verifica se o teu arquivo com o código do programa ta salvo como '.c' ou se ele ta salvo como '.cpp' . Se estiver em .cpp mude para .c (você pode literalmente copiar tudo e colar em outra aba do dev C++ e então so adicionar o .c no final do nome quando for salvar).

O Dev salva por padrão em C++ os projetos que a gente faz. Mas no caso desse programa, o C++ dificulta a alocação dinâmica um pouquinho. Exite uma forma de corrigir isso no C++, mas acho que pro objetivo do curso, mudar pra C se torna melhor.

Ao mudar, pode ser que você não consiga usar o loop 'for' iniciando a variável 'i' como parâmetro (no meu Dev aconteceu isso). Pra resolver eu simplesmente iniciei o 'i' como variável global e apenas zero ele a cada for novo que eu vou fazer (o mesmo vale para o 'j').

Espero ter ajudado, abraços.

Vlw, Diogo Felipe aconteceu exatamente como você descreveu. Mas agora esta funcionando muito obrigado.