Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

morther

Memória Dinâmica

Mensagens Recomendadas

morther

Boas,

Estou a tentar alocar memória dinâmicamente num array a medida que o utilizador vai introduzindo dados, o tamanho do array vai depender do numero de valores introduzidos pelo utilizador, ou seja, sempre que o utilizador introduzir o valor '0', o programa termina, quando isso não acontece, o programa continua aumentando o tamanho do array para n+1*sizeof(int).

Não sei se tenho algo de errado no código, no entanto o programa crasha quanto tento introduzir o terceiro valor.

Precisava aqui de uma ajudinha...

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

main()

{

    int n=1;

    int *array;

    array=(int*)malloc(n*sizeof(int));

    do

    {

        printf("Introduza o %d numero:\n",n);

        fflush(stdin);

        scanf("%d",&array[n]);

        n++;

        array=(int*)realloc(array,n*sizeof(int));

    }

    while(array[n-1]!=0);

    system("pause");

}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
_7_up_

n = 1;

alocas espaço para 1 inteiro

escreves esse inteiro na posição n=1

Acontece que os arrays começam na posição ZERO.

Se alocas espaço para um inteiro tens de o escrever na posição array[0].

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.