Ir ao conteúdo
  • Cadastre-se

Paulo Silva

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

0
  1. Boa tarde pessoal! Queria pedir uma ajuda para produzir um pedaço de código (que vou descrever logo abaixo). Os temas em análise são passagem por parâmetros,ponteiros, registros e matrizes na linguagem C. Primeiro, declaro a struct Matriz que guarda os dados do numero de colunas(int colunas), linhas(int inhas), celulas (int celulas) e de um vetor (int *vet). Falta descrever que celulas = linhas * colunas (para usar num laço de repetição para receber os valores da matriz num vetor,no caso, o ponteiro *vet. Ficou assim: ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- struct Matriz{ int linhas,colunas,celulas,*vet; }; typedef struct Matriz Matriz; ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Tenho que desenvolver a função Matriz* CriaMatriz(int linhas,int colunas) ; para alocar espaço de memoria para a struct Matriz ma (aloca os valores da matriz ma e de outras sucessivas no programa como um todo). Temos o código de tal função: -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Matriz* CriaMatriz(int nlinhas,int ncolunas){ Matriz *m; m = malloc(sizeof(Matriz)); (*m).colunas = ncolunas; m -> linhas = nlinhas; m -> celulas = (nlinhas)*(ncolunas); m -> vet = malloc((nlinhas*ncolunas) * sizeof(int)); return m; } // eu chamei tal função, dentro da função main, ma = CriaMatriz(ma), sendo ma um ponteiro da estrutura Matriz (logo coloco a função principal). -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- O maior problema que não consigo resolver é na seguinte função : CarregaMatriz, que guarda os valores da matriz em um único vetor que será salvo na estrutura que faz o pedido na função principal. Temos seu código (que não compila): -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- void CarregaMatriz(Matriz *m){ int i; for(i=0;i< m.celulas ;i++) scanf("%d",&(m.vet)); } ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Função pricipal: -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- int main(){ int l,c ; Matriz *ma,*mb; scanf("%d %d",&l,&c); ma = CriaMatriz(l,c); CarregaMatriz(ma); scanf("%d %d",&l,&c); mb = CriaMatriz(l,c); CarregaMatriz(mb); //.........(tem mais código ainda) ..... return 0; } --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Eu não estou conseguindo salvar os valores da matriz no vetor (não acesso o valor de celulas da struct ma na função CarregaMatriz). Me ajudem a entender essa parte! Agradecido.

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!