Ir ao conteúdo
  • Cadastre-se

Problema com alocação de vetor dentro da função


rs.fran

Posts recomendados

Bom dia. Estou desenvolvendo um programa em C para meu trabalho prático de AEDS III. O objetivo é ler um tabuleiro de damas em algum momento do jogo (ou seja, as peças estariam misturadas), e a partir daí, calcular quantas peças do adversário podem ser comidas. O problema que estou encontrando é: eu tenho uma função para ler o tamanho do tabuleiro e as jogadas do arquivo, só que não estou conseguindo passar um vetor que está declarado na main para essa função. Se eu declaro int *vetor na main e passo int *vetor para a função, o programa avisa que a variável não foi inicializada. se eu declaro int vetor (no caso deixou de ser um inteiro) na main e passo int *vetor para a função, não há erro de compilação, porém não funciona pois logicamente, na main a variável não é um vetor. podem me ajudar?

A função de abertura do arquivo funciona corretamente.
 
Meu código da função:
 

int leEntrada(FILE **arquivo_entrada, int *m, int *n, int *n_casas, int *jogadas){    int i;    fscanf(*arquivo_entrada, " %d %d \n ", m, n);    if (m) printf("\nNumero de linhas : %d \n", *m);    if (n) printf("\nNumero de colunas : %d \n", *n);    if (m == 0 && n == 0) return(0);        *n_casas = casasDisponiveis(m, n);        jogadas = (int *) calloc (*n_casas+1, sizeof(int));    if (jogadas == NULL) {        printf ("\n Erro: Memoria Insuficiente \n");        return (0);    }        for (i=0; i<*n_casas; i++){        fscanf(*arquivo_entrada, " %d , ", &jogadas[i]);        printf("jogada %d: %d \n", i, jogadas[i]);    }    return(0);}

código na main:

int main(int argc, char *argv[]) {    int i = 0, j = 0, m, n, n_casas, resultado;    int **tabuleiro;    FILE *arquivo_entrada; //cria variavel do tipo arquivo    int jogadas;    int visitado[100][100];    .    .    .    //enquanto não for o fim do arquivo entrada.txt    while (!feof(arquivo_entrada)){        resultado = 0;        leEntrada(&arquivo_entrada, &m, &n, &n_casas, &jogadas);        .        .        .    }        fclose(arquivo_entrada);    return 0;}

Coloquei meu código em anexo caso queiram olhar ele por completo.

tp1sequencial .txt

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...