Jump to content

duvida - declaracao num vetor


Recommended Posts

Posted (edited)

Ora boas noites.

a minha duvida consiste no facto de nao saber se declarar assim variaveis é errado, uma vez qe qero qe o vetor tenha o limite da variavel n, lida num scanf

int i, n;

printf("Le o valor de n\n");
scanf(" %d", &n);

int v[n];

THanks

Edited by pmg
LP adicionada ao GeSHi
Posted (edited)

Desde 1999 (ou melhor, desde que os compiladores implementaram as regras da linguagem publicadas em 1999) é valido.

Nota que alguns compiladores (nomeadamente o Microsoft Visual Studio) nao adoptaram (ainda) o C99 e continuam a compilar C89. Em C89, a tua declaracao é invalida.

Se estas limitado a um compilador C89, a solucao é usar memoria dinamica

int i, n;
int *v;

printf("Le o valor de n\n");
scanf("%d", &n);

/* verifica que n é razoavel: positivo, menor que 2 milhoes */

v = malloc(n * sizeof *v);
if (v == NULL) {
   /* error */
} else {
   /* usa v */
   free(v);
}

Edit

Nota ainda que a versao C99 de VLA (Variable Length Arrays) sofre de um mal terrivel: nao é possivel recuperar de um erro por falha de memoria.

Edited by pmg

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Posted (edited)

Se ela nao especificou que queria C89, leva o PDF do Standard (C99 ou C2011) a tua professora e mostra-lhe a seccao 6.7.5.2 (C99) ou 6.7.6.2 (C2011) 🙂

Edited by pmg

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.