@Bruno_Alexander656 escreveu:
Ola pessoal, estou fazendo um exercicio em c onde recebo do usuario a quantidade de linhas e colunas para criar uma matriz usando alocação dinamica. Porém quando eu vou passar os valores para a matriz da erro e não sei o que é, ja revisei todo o código e comparei com outros exemplos mas não achei o erro.
#include<stdio.h> #include<stdlib.h> int **criaMatriz(int lin, int col); int recebeMatriz(int lin, int col, int **p); int recebeFaixa(int lin, int col); main(){ int i,lin, col, tam,**p,resp=1; while(resp==1){ printf("Informe a quantidade de Linhas: \n"); scanf("%i",&lin); printf("Informe a quantidade de Colunas: \n"); scanf("%i",&col); p = criaMatriz(lin, col); recebeMatriz(lin, col, p); recebeFaixa(lin,col); for(i=0;i<lin*col;i++){ free(p[i]); } printf("1 para continuar e 0 para sair"); scanf("%i",&resp); } } int **criaMatriz(int lin, int col){ int i,**p; p = (int**)malloc(sizeof(int*)*lin); if(!p){ printf("**Memoria insuficiente**"); } for(i=0;i<lin;i++){ p[i]=(int*)malloc(sizeof(int*)*col); } if(!p){ printf("**Memoria insuficiente**"); } } int recebeMatriz(int lin, int col, int **p){ int i, j, num,pos=0; for(i=0;i<lin;i++){ for(j=0;j<col;j++){ pos=0; while(pos==0){ printf("Digite um numero positivo: \n"); scanf("%i",&num); if(num>=0){ pos=1; p[i][j]=num; printf("testa b"); }else{ printf("Somente positivos!\n"); } } } } } int recebeFaixa(int lin, int col){ int i, j,qtd=0,inicio, fim,tam; tam = lin*col; printf("informe o Inicio da faixa de 1 a %i: \n",tam); scanf("%i",&inicio); printf("informe o Fim da faixa de %i a %i: \n",inicio,tam); scanf("%i",&inicio); for(i=0;i<inicio;i++){ for(j=0;j<fim;j++){ qtd+=1; } } printf("Quantidade entre %i e %i: %i\n",inicio, fim, qtd); }
Mensagens: 1
Participantes: 1