vetor de ponteiros exemplo de alocação. escrever vetor de vetores de floats int main() { int i, k,...

4
Vetor de Ponteiros Exemplo de Alocação

Upload: internet

Post on 17-Apr-2015

122 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: 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 de Ponteiros

Exemplo de Alocação

Page 2: 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;

Escrever Vetor de Vetores de floatsint 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\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 vetoresif( (vetor = (float**)malloc(n*sizeof(float*))) == NULL ) { printf("nao foi possivel alocar memoria para o vetor de ponteiros!!\n"); exit(1); }

Page 3: 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;

//Escrevendo cada um dos vetoresfor( 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] ); } }

(...)

Page 4: 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;

//No final, liberação da memória

for( k=0; k<n; k++ ) free(vetor[k]); free(vetor); free(tamanho); }