[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



É, realmente eu escrevi errado a chamada da função! :)
Mas o negócio é que assim mesmo, mesmo eu escrevendo errado, não devia retornar NULL! Digo, tudo bem uma mensagem de violação de espaço de memória (as famosas GPFs ou operações ileigais) mas NULL??!
Ah, mais um fato bizarro, eu tentei fazer o seguinte

char buffer[10];

buffer[0] = 'a';
buffer[1] = '\0';

printf("%s", buffer);

adivinha o que aconteceu!?!?
General protection fault
Acho q meu LCC tá com problemas sérios...

Rubens Altimari wrote:

Giuliano:

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

    Esqueci de dizer: deveria ser mesmo 30, não é? O programa abaixo mostra
isso:

char *pString = (char*) malloc(sizeof(char));

for (int i=2, j=1; i<100; ++i)
  if((i+1) % 30 == 0)
    if((pString = (char*) realloc(pString, ++j*30*sizeof(char))) == NULL) {
      printf("Pau!\n");
      break;
    }
    else
      printf("Em i=%d, realocado para %d\n", i, j*30*sizeof(char));

  free(pString);

Rubens