Kod dostaje SEGFAULT

szukaj na forum nowy temat odpowiedz

Strona [ 1 ] z 1

youtube ten post 08-02-2010 16:12





Cześć
Mam kod do wypisywania zawartości wektora 2D:

#include <cstdio>
#include <vector>
#include <algorithm>

void printMatrix(std::vector<std::vector<bool> >& matrix) {
    int i, j;
    for(i = 0; i < matrix.size(); ++i) {
        printf("%2d: ", matrix[i].size());
        for(j = 0; j < matrix[i].size(); ++j) {
            printf("%d,", matrix[i][j]);
        }
        printf("\n");
    }
    printf("\n");
    fflush(stdout);
}

int main()
{

    std::vector<std::vector<bool> > matrix(10, std::vector<bool>(15, true));

    printMatrix(matrix);

    return 0;
}

Nie mam pojęcia czemu ale ten kod mi się wysypuje  [???]
jak zmienie sygnaturę funkcji z:
void printMatrix(std::vector<std::vector<bool> >& matrix)
na
void printMatrix(const std::vector<std::vector<bool> >& matrix)
to działa dobrze. Czy ktoś wie co jest nie tak?
Przejdź na górę strony
cytuj
MarekR22 ten post 08-02-2010 17:12
avatar

Użytkownik
Status: Offline
Dołączył: 26-01-2008

tak z ciekawości, a co się stanie jak poprawisz tak:
printf("%d,", (int)matrix[i][j]);
Przejdź na górę strony
cytuj
yygtrtertt ten post 10-02-2010 19:10





segmentation fault jest najczesciej wtedy gdy jest przekroczenie zakresu jakiegos kontenera: tablicy, wektora itp lub próbujemy przypisac wartosc "pustemu" wskaznikowi (niezainicjowanemu, NULL)
Przejdź na górę strony
cytuj
szukaj na forum nowy temat odpowiedz

Strona [ 1 ] z 1

1 użytkownik(ów) przegląda ten temat (1 gości)
(żadnych zarejestrowanych użytkowników)

Copyright © 2000-2006 by Coyote Group 0.9.3-pre3
Czas generowania strony: 0.0347 sek. (zapytań SQL: 10)