Jump to content
alphasil

Calloc

Recommended Posts

alphasil

Oi;

Desta vez é só para perguntar se está bem assim, pelo menos funciona :)

Substituir a definição estática do array atletas pela alocação dinâmica, escreva o excerto de código que peça ao user o numero de atletas esperado e reserve dinamicamente espaço.

Pus assim:

int main()
{
   int num;
   int *numeros; //ponteiro para usar com alocacao dinamica
   printf("Quantos atletas quer registar!\n");
   scanf("%d", &num);
   getchar();
   numeros=(int*)calloc(num,sizeof(int)); //Uso o calloc visto que tenho um array.
   if(numeros==NULL)
   {
    printf("Erro na alocacao de memoria");
   }
   else
   {
    printf("Memoria bem alocada...");
   }
   return 0;
}

Alguma anomalia ou sugestão?

Share this post


Link to post
Share on other sites
HappyHippyHippo

se não queres ter N de pessoas a mandar flame responses tira o cast do calloc

porque, de resto e como já testaste e viste, o código está correto.

claro que o meu estilo de código é diferente, como a seguinte linha:

if((numeros = calloc(num,sizeof(int)))==NULL)

mas isso é gostos

tens também o uso do scanf para leitura de valores do teclado, que é aceitável para quem está a começar.

no entanto, vais muito em breve notar que tem sério problemas se os valores de entrada não são os esperados, assim como o encadeamento de scanf's sem limpeza do buffer de leitura.

mas como disse, está correto.


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
alphasil

Obrigado

Fogo, és bem mais prático, quem me dera, daqui a 150 anos talvez consiga simplificar como tu :)

* faltava-me o free(numeros)

Já tirei o cast

numeros=calloc(num,sizeof(int));

Share this post


Link to post
Share on other sites
HappyHippyHippo

* faltava-me o free(numeros)

sim faltava, mas como

- estás a aprender

- a memória é libertada no fim da execução

- a quantidade de memória alocada é pequena

- a alocação de memória não é executada dentro de um ciclo

- a aplicação é academica

- estão sempre a reclamar por ser demasiado exigente com pessoas que estão a aprender

deixei isso para mais tarde

Edited by HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
pmg

* faltava-me o free(numeros)

... e os #includes :)


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!

Share this post


Link to post
Share on other sites

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.