Ir ao conteúdo
  • Cadastre-se

Vetor dinâmico


Visitante

Posts recomendados

Bom dia, comecei a ler sobre alocação dinâmica de memória, e a página que estou lendo diz: 

Citação

Vamos voltar a uma ponta solta num dos capítulos anteriores, onde queríamos fazer com que o utilizador dissesse quantos elementos do array é que se deveria utilizar. Já dissemos antes que o declarador do nº de elementos do array tem de ser ou uma constante ou um literal, mas não pode ser uma variável. Isso dá erro.

 

Só que fiz o exemplo abaixo como teste e roda perfeitamente:

 

#include <iostream>
using namespace std;

int main(){
	int tam;
	cout << "Entre com tamanho do array: " << endl;
	cin >> tam;
	int vetor[tam];
	for(int i=0; i<tam; i++){
		vetor[i] = i;
	}
	for(int i=0; i<tam; i++){
		cout << vetor[i] << endl; 
	}


	return 0;
}

Por que está rodando? A página está desatualizada ou estou deixando passar alguma coisa? É versão mais atual da linguagem que permite?

Link para o comentário
Compartilhar em outros sites

Bom dia @nanquinote

Resumindo tudo/ Você supos que é uma nova versão da linguagem que suporte esta condição; e acertou é isto mesmo.

Objeto é dado o nome de VLA, permitindo definir tamanhos vetores por variáveis. Tratado oficialmente na versão C'11, e ignorado na versão C'99. 

Link para o comentário
Compartilhar em outros sites

@Mauro Britivaldo Pode citar referencias? Eu nunca tinha ouvido falar isso.

Em c é sabido que não se deve usar variáveis porque deveriam ser constantes, porém existe um truque que sim funciona e faz com que o compilador não grite:
const int TAM = 10;
int n;
scanf("%d",n);
int vetor[TAM+n];

Isso faz com que não mostre nem avisos, porém é gambiarra, nós estamos enganando o compilador. >_<

 

Edito:
Ja me informei! VLA "array de tamanho variável" suportado oficialmente no padrão C99 e opcional no padrão c11, não suportado no padrão c90. Valeu pela info, todos os dias se aprende algo novo =D
 

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!