Stack corrupted !?
От: MoohaCeCe  
Дата: 05.04.06 06:13
Оценка:
VS.2005 бросается исключением

Run-Time Check Failure #2 - Stack around the variable 'mac2' was corrupted.


при выходе из функции

void Protocol::init ()
{

    MACAddress mac2;
    mac2 = _String("0x0:0x0:0x0:0x0:0x0:0x1");
    return;
}


где

IValueObject &MACAddress::operator = (const _String &rhs) 
{
    const char *s = rhs.getCStr();
    sscanf(s, "%i:%i:%i:%i:%i:%i", &m0, &m1, &m2, &m3, &m4, &m5);
    return *this;
}


и


_String::String (const char *s) {
        if (!s) {
            string = 0;
            return;
        }
        string = new char[strlen(s) + 1];
        strcpy(string, s);
}


В чем могут быть проблемы?
Re: Stack corrupted !?
От: MoohaCeCe  
Дата: 05.04.06 06:15
Оценка:
... вместо
_String::String

_String::_String

Re: Stack corrupted !?
От: MoohaCeCe  
Дата: 05.04.06 06:23
Оценка:
Почему-то все хорошо, если вместо

sscanf(s, "%i:%i:%i:%i:%i:%i", &m0, &m1, &m2, &m3, &m4, &m5);


написать

sscanf(s, "%i", &m0);


но мне, очевидно, это не подходит. Я не понимаю...
Re[2]: Stack corrupted !?
От: MoohaCeCe  
Дата: 05.04.06 06:35
Оценка:
Все! Разобрался...

m0...m5 — у меня были чарами
у тут надо инты:
sscanf(s, "%i:%i:%i:%i:%i:%i", &m0, &m1, &m2, &m3, &m4, &m5)


Всем спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.