Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > vector subscript out of range


Автор: mrgloom 30.6.2011, 11:57
возможно как то определить на каком этапе в цикле произошла ошибка vector subscript out of range?
или хотя бы определить строчку на которой выдается ошибка? 

Автор: newbieone 30.6.2011, 12:28
а режим дебаггинга в IDE не помогает? там много возможностей - step into, breakpoint, ...

Автор: borisbn 30.6.2011, 14:19
перед каждой строчкой, в которой есть обращение к элементу вектора через квадратные скобки распечатывать
номер строки кода, индекс (то, что внутри квадратных скобок) и размер вектора
Код

void dbgPrint( int line, int idx, int size ) {
    char str[ 512 ];
    sprintf( str, "%d %d / %d\n", line, idx, size );
    OutputDebugStringA( str );
}

...
for ( int i ... ) {
    dbgPrint( __LINE__, i, vect1.size() );
    int x = vect1[ i ];
    for ( int j ... ) {
        dbgPrint( __LINE__, j, vect2.size() );
        double d = vect2[ j ];
...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)