Malloc ошибки : неправильная контрольная сумма для освобожденных объектов

я работаю на хвост для реализации назначения. У меня она работает неправильно, однако я, кажется, получаю сообщение об ошибке от свободных в случайные моменты времени.

я не вижу, чтобы выследить его к образцу, или ничего, кроме того, оно соответствует.

например, если я называю моей программе как "хвост -24 test.in" я хотел бы получить неправильные ошибка контрольной суммы в той же строке, на несколько прогонов. Однако, с разных файлов и даже разное количество строк для печати обратно я вернусь без ошибок.

какой-Либо идеи о том, как выследить вопрос, я пытался отладить его для часов безрезультатно.

Здесь фрагменты кода:

строки определяется как char** и была malloc, как:

lines = (char**) malloc(nlines * sizeof(char *));

void insert_line(char *s, int len){

  printf("ttLine Number: %d Putting a %d line into slot: %dn",processed,len,slot);
  if(processed > numlines -1){//clean up
    free(*(lines+slot));
    *(lines + slot) = NULL;
  }
  *(lines + slot) = (char *) malloc(len * sizeof(char));
  if(*(lines + slot) == NULL) exit(EXIT_FAILURE);
  strcpy(*(lines+slot),s);
  slot = ++processed % numlines;
}

Найдено 6 ответов:

Malloc Error: incorrect checksum for freed object

http://stackoverflow.com/questions/232678/malloc-error-incorrect-checksum-for-freed-object

Посмотреть решение →