[Prévia cron] [Próxima Cron] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto] [Índice de autor]

Re: realloc



Giuliano:

if((i + 1) % 29) ==

    j++;
    if(realloc(pString, j*30*sizeof(char)) == NULL) return(4);
}
>O problema é que quando a chamada de realloc é feita mais do que 2 vezes, a
função retorna NULL! Existe algum problema de estabilidade ou confiabilidade
com realloc q eu desconheça? Duvido sinceramente q não exista um segmento do
tamanho de 90 posições que possa ser alocado....

    Não é assim que se usa realloc()! Você tem de pegar o valor de retorno,
pois realloc não garante que vai conseguir aumentar o tamanho do buffer _no
mesmo lugar_. Se for preciso alocar em outro lugar, porém, ela garante que
copia o conteúdo. Ou seja, você tem de pegar o retorno:

if ((pString = (char*) realloc(pString, j*30*sizeof(char))) == NULL)
return(4);

Rubens