Run-Time Check Failure #3 - The variable 'j' is being used without being initialized

void print_matrix(vector<vector<int>> matrix)
{
    int j;
    for (int i = 0; i < matrix.size(); i++)
    {
        for (j = 0; j < matrix[i].size(); j++)
        {
            cout << matrix[i][j] << " ";
        }cout << endl;
    }
    for (int a = 0; a < j; a++) cout << "//"; cout << endl; //-Run-Time Check Failure #3 - The variable 'j' is being used without being initialized.
}

Ответы (1 шт):

Автор решения: Harry

Смотрите - ну откуда компилятору знать: вдруг matrix.size() равно 0. Тогда внешний цикл не выполнится ни разу, так? Значит, не выполнится и внутренний, и j останется неинициализированной.

Но будет использована в вашем

for (int a = 0; a < j; a++)

О чем, собственно, компилятор и предупреждает...

→ Ссылка