


Си++. проблема с realloc - точка останова
среда программирования ---MS Visual Studio 2008
при исполнении проги запинается на строке "op.ulDigits = (unsigned long *) realloc(op.ulDigits, newlen
ОС Windows инициировала точку останова в PROJECT.exe.
Это может быть вызвано повреждением кучи и указывает на ошибку в PROJECT.exe или в одной из загруженных им DLL.
Возможной причиной так же может быть нажатие пользователем клавиши F12, когда фокус принадлежит PROJECT.exe
// весь код приводить не буду, там все нормально, а вот проблемный участок:
hugenum_c hugenum_c::extendhn(hugenum_c op, short newlen)
{
//newlen op.ulDigits = (unsigned long *) realloc(op.ulDigits, newlen op.iLen = newlen;
return op;
}
//-----------------класс описан в хедере----------------
class hugenum_c
{
unsigned long *ulDigits;
short iLen;
size_u t;
hugenum_c extendhn(hugenum_c op, short newlen);
hugenum_c neg(hugenum_c op);
public:
hugenum_c(short length);
~hugenum_c();
char* hextext();
bool operator ==(hugenum_c op);
bool operator > (hugenum_c op);
bool operator < (hugenum_c op);
bool operator >=(hugenum_c op);
bool operator
void operator +=(hugenum_c op);
void operator +=(long op);
void operator -=(hugenum_c op);
void operator -=(long op);
void operator = (hugenum_c op);
void operator = (long op);
hugenum_c operator + (hugenum_c op);
hugenum_c operator + (long op);
hugenum_c operator - (hugenum_c op);
hugenum_c operator - (long op);
};
hugenum_c::hugenum_c(short length)
{
this->iLen = length;
this->t.quword &= 0;
this->ulDigits = (unsigned long *) calloc(length, 4);
}
Вот бы еще посмотреть на код конструктора? Как там ulDigits инициализируется?