-3
I am learning about pointers and dynamic allocation and I cannot overcome this bug. Apparently the pointer is not accepting the value of type int, but I cannot understand why this occurs.
#include <iostream>
#include <string.h>
#include <time.h>
struct Inimigo {
std::string nome;
int vida;
};
struct Bloco {
int bloqueado_ou_nao;
};
struct Mapa {
int A;
int L;
Bloco matriz;
};
struct Fase {
std::string nome;
Mapa mapa_fase;
int N;
Inimigo vetor;
};
Mapa CriarMapa(int altura, int largura) {
Mapa ** mapa_funcao;
int porcentagem = 0;
(**mapa_funcao).matriz.bloqueado_ou_nao = new int * [altura];
for(int i = 0; i < altura; i++) {
(*mapa_funcao[i]).matriz.bloqueado_ou_nao = new int [largura];
}
for(int i = 0; i < altura; i++){
for(int j = 0; j < largura; j++) {
porcentagem = rand() % 100 + 1;
if(porcentagem >= 1 && porcentagem <= 20) {
mapa_funcao[i][j].matriz.bloqueado_ou_nao = false;
}
else if(porcentagem >= 21 && porcentagem <= 100) {
mapa_funcao[i][j].matriz.bloqueado_ou_nao = true;
}
}
}
for(int i = 0; i < altura; i++) {
for(int j = 0; j < largura; j++) {
std::cout << mapa_funcao[i][j].matriz.bloqueado_ou_nao;
}
std::cout << std::endl;
}
}
int main() {
srand(time(NULL));
CriarMapa(4,4);
}