我運行此代碼後,拿到這本 「heap corruption detected
」 消息:檢測到堆損壞| C++
uli& uli::operator =(char* n)
{
char* buffer = new char[strlen(n)];
char* p;
int op;
int coef;
strcpy(buffer, n);
while(*buffer)
{
op = strlen(buffer) - 5;
p = (op >= 0) ? op+buffer : buffer;
coef = atoi(p);
if(coef > 65535)
coef = atoi(++p);
push(head, coef);
*p = '\0';
}
delete buffer; // <- heap corruption detected
return *this;
}
這是我如何調用該方法:
uli x;
x = "9876123";
什麼是 「檢測堆損壞」 是什麼意思?
使用'delete [] buffer'。 – 2012-03-04 03:02:32
你有沒有使用一個對象來處理內存。也許是一個std :: string而不是char *。 – 2012-03-04 03:14:06
我不是那麼好 – Jonas 2012-03-04 03:29:05