1
resposta

[Projeto] Começando o jogo

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

char** mapa; int linhas; int colunas;

void libera_mapa(){ //o trecho de codigo abaixo serve para liberar os espaço alocados para o mapa for (int i = 0; i < linhas; i++){ free(mapa[i]); } free(mapa); //o trecho de codigo acima serve para liberar os espaço alocados para o mapa }

void aloca_mapa(){ mapa = malloc(sizeof(char*) * linhas); //aqui estamos alocando a qtd necessaria de char para as linhas da nossa matriz for (int i = 0; i < linhas; i++){ mapa[i] = malloc(sizeof(char*) * (colunas+1)); //agora para cada linha vamos alocar o suficiente de char para armazenar as colunas } }

void le_mapa(){ 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);

aloca_mapa();

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

}

int main() {

le_mapa();

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

libera_mapa();

}

1 resposta

Oi, Vinícius! Tudo bem?

Parabéns pelo código, ficou super bacana! A prática do conteúdo é algo que nos ajuda a internalizar o conhecimento adquirido e nesse processo caso tenha restado alguma dúvida em específico, sinta-se à vontade em comunicar, estou à disposição e ficarei super feliz em poder ajudar!

Um forte abraço e bons estudos!