Como usar valor dinâmico em vetores
Fui alertado por nosso colega Fernando Paiva de que quando usamos vetores(array) não é recomendado usar valores fixos para comandos de laço como o for. Isso porque o vetor pode mudar seus valores e até mesmo seus índices conforme o laço. Como o vetor inicia-se sempre em 0, usar uma referência igual ou maior a seu índice pode criar erros e travamentos no programa.
Função sizeof()
Para usar valores dinâmicos deve-se criar uma variável len (de lengh, tamanho em inglês) que recebe o valor exato do vetor através da função sizeof. A função sizeof(vetor) pega o tamanho do vetor e sizeof(int) retorna esse valor em inteiro atribuindo o tamanho à variável len. Veja o exemplo e compare com o post Vetores - Exemplo 1:
#include <iostream>
#include <cstdlib>
#include <stdio.h>
using namespace std;
int main()
{
float vetor[10]; //vetor de valores fixos com 10 posições de memoria.
int i; //índice do laço.
int aluno = 0; //contador para número do aluno.
float soma;
int len = sizeof(vetor) / sizeof(int); //pega o tamanho do vetor.
for (i = 0; i < len; i++) //for usando o tamanho do vetor armazenado em len.
{
aluno = aluno + 1; //incrementa o número do aluno.
cout << "Digite a nota do aluno " << aluno << " : ";
cin >> vetor[i];
}
soma = 0;
aluno = 0; //zera o número do aluno.
cout << "\n";
for (i = 0; i < len; i++) //for usando o tamanho do vetor armazenado em len.
{
aluno = aluno + 1; //incrementa o numero do aluno.
cout << "A nota lida para o aluno " << aluno << " foi: " << vetor[i];
cout << "\n";
}
system("PAUSE");
}
Nenhum comentário:
Postar um comentário