Pegar valor e alterar valor de um vetor de struct dentro de uma struct

0 respostas
programação
mmrosa

Pessoal, tenho duas structs ,TIRO e TORRE (a struct TORRE possui um vetor de struct TIRO) e tenho a função chamada inicializarTiros. Quando chamo essa função na main ela não inicializa todas as posições do vetor Tiros com 0’s, algumas posições ficam com lixo de memória, porém se eu fizer um for na própria main pra setar todas as posições do vetor tiros com 0’s funciona. Gostaria de saber como fazer a função funcionar e tbm de maneira geral como acessar um vetor de struct dentro de uma struct pq acho que ñ estou fazendo certo e estou tendo problemas quando faço verificações que estão utilizando essa struct.

typedef struct _TIRO

{

SDL_Rect rect;

int tiroAtivo;

double angulo;

int xVel;

int yVel;

}TIRO;

typedef struct _TORRE

{

SDL_Rect rect;

TIRO tiros[MAX];

double angulo;

}TORRE;

void inicializarTiros(TORRE torre)
{

// inicia o vetor de tiros com 0's em todas posiçoes (tiros nao ativos)
for(int j = 0;j < MAX;j++)
{
	torre.tiros[j].tiroAtivo = 0;
	//printf("valor tiro %d\n",torre.tiros[j].tiroAtivo);
}
}

// parte da main - como estou acessando um vetor de struct dentro de um struct

TORRE torre1;

inicializarTiros(torre1);
if (i == MAX)

{

i = 0;

}
torre1.tiros[i].tiroAtivo = 1;

torre1.tiros[i].rect.x = rect.x;

torre1.tiros[i].rect.y = rect.y;

torre1.tiros[i].angulo = torre1.angulo;

i++;
Criado 26 de maio de 2017
Respostas 0
Participantes 1