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

fonseca

Realloc

Mensagens Recomendadas

fonseca    0
fonseca

tenho uma pequena duvida na função realloc...

Isto é o seguinte eu tenho uma matriz com uma linha para 20 caracterse([1][20])

e quero ao longo do programa, acrescentar mais uma linha á matriz com o exacto numero de caracteres.([1+1][20])

Para tal, vou usar a função realloc, no entanto estou a ter dificuldades em perceber, a sintaxe da função bem como o modo como vou fazer isto.

Se puderem pelo menos pôr um exemplo com a sintaxe necessária para a implementação desta função, agradecia.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
rgcaldas    0
rgcaldas

Antes de mais o realloc só funciona para elementos criados com o malloc ou calloc.

a sintaxe é a seguinte:

ponteiro_para_algo = realloc(ponteiro_original, tamanho_que_queres_definir);

no caso do tamanho podes utilizar a função

sizeof(tipo_de_dados)

para devolver o tamanho do tipo de dados que queres, depois é só multiplicar pelo numero de elementos que queres.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
fonseca    0
fonseca

ok!ntão neste caso após faxer o

tipo

ap=(char*)malloc(sizeof(char)*20);   

para alocar um vector de 20 char

e dps faxo ap=(char*)realloc(ap,2*sizeof(char*20));

é lógico k tá mal o k acabei de dixer

mas por favor alguem corrije...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
rgcaldas    0
rgcaldas

ok!ntão neste caso após faxer o

tipo

ap=(char*)malloc(sizeof(char)*20);   

para alocar um vector de 20 char

e dps faxo ap=(char*)realloc(ap,2*sizeof(char*20));

é lógico k tá mal o k acabei de dixer

mas por favor alguem corrije...

Não estás muito longe

ap=(char*)realloc(ap,2*(20*sizeof(char));

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
rgcaldas    0
rgcaldas

a calloc a única coisa que faz a mais que o malloc é colocar todos os bits a 0.

E não permite fazer o mesmo que o realloc.

Partilhar esta mensagem


Link 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