40 likes | 152 Views
Vetor de Ponteiros. Exemplo de Alocação. Escrever Vetor de Vetores de floats. int main () { int i, k, n; float **vetor; // vetor de vetores int *tamanho; // vetor com o tamanho de cada um dos vetores printf ("entre com o numero de vetores que deseja processar<br>"); scanf ("%d", &n);
E N D
Vetor de Ponteiros Exemplo de Alocação
Escrever Vetor de Vetores de floats intmain() { int i, k, n; float **vetor; // vetor de vetores int *tamanho; // vetor com o tamanho de cada um dos vetores printf("entre com o numero de vetores que deseja processar\n"); scanf("%d", &n); if( n <= 0 ) { printf("erro: numero de vetores < 0\n"); exit(1); } //alocação dinâmica do vetor de tamanhos if( (tamanho = (int*)malloc(n*sizeof(int))) == NULL ) { printf("nao foi possivel alocar memoria para o vetor de tamanhos!!\n"); exit(1); } //alocação dinâmica do vetor de vetores if( (vetor = (float**)malloc(n*sizeof(float*))) == NULL ) { printf("nao foi possivel alocar memoria para o vetor de ponteiros!!\n"); exit(1); }
//Escrevendo cada um dos vetores for( k=0; k<n; k++ ) { printf("entre com o tamanho do vetor %d\n", k+1 ); scanf("%d", &tamanho[k] ); if( tamanho[k] <= 0 ) { printf("erro: numero de elementos do vetor %d < 0\n", k+1 ); exit(1); } // alocação dinâmica de cada um dos vetores de floats if( (vetor[k] = (float*) malloc(tamanho[k]*sizeof(float))) == NULL ) { printf("nao foi possivel alocar memoria para o vetor %d\n", k+1); exit(1); } // entrando com cada um dos elementos de cada vetor for( i=0; i<tamanho[k]; i++ ) { printf("entre com o valor da posicao %d do vetor %d:", i, k+1); scanf("%f", &vetor[k][i] ); } } (...)
//No final, liberação da memória for( k=0; k<n; k++ ) free(vetor[k]); free(vetor); free(tamanho); }