Пишу под VC++6.
Пользуюсь стандартными функциями malloc и realloc.
Типа того:
unsigned long *begin;
int len=1;
...
begin=(unsigned long*)malloc(sizeof(unsigned long));
...
что-то делаю с этим лонгом...
if(надо еще места в памяти)
{ len++;
begin=(unsigned long*)realloc(begin, len*sizeof(unsigned long));
}
...
короче по мере надобности увеличиваем память на unsigned long каждый раз. Но это не всегда работает верно. Было замечено, что при определённом количестве вызове realloc'а, память выделяется не пустая, а уже используемая, что приводит к сбою программы. Это хорошо видно в пошаговом выполнении.
Кто с этим сталкивался и как боролся?