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);
}
В чем могут быть проблемы?
Почему-то все хорошо, если вместо
sscanf(s, "%i:%i:%i:%i:%i:%i", &m0, &m1, &m2, &m3, &m4, &m5);
написать
sscanf(s, "%i", &m0);
но мне, очевидно, это не подходит. Я не понимаю...
Все! Разобрался...
m0...m5 — у меня были чарами
у тут надо инты:
sscanf(s, "%i:%i:%i:%i:%i:%i", &m0, &m1, &m2, &m3, &m4, &m5)
Всем спасибо!