Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Зашифровать/расшифровать сообщение по указанному правилу https://www.cyberforum.ru/ cpp-beginners/ thread2378650.html
Как реализовать на Си? Зашифруйте/расшифруйте сообщение Метод шифровки: в начале печатается последний символ потом первый затем предпоследний, а потом второй и т.д.
Подсчитать количество строк файла, в которых есть слова равной максимальной длины C++
дан символьный файл f. подсчитать количество строк в которых есть слова максимальной длины. Результат с соответствующим комментарием записать в первую стройку файла f. Заранее благодарю.
Реализовать "падающие" буквы начиная с конца строки C++
Как реализовать? Написать программу со следующим сценарием: пользователь вводит строку, нажимает Enter и далее варианты: Буквы падают с конца строки.
C++ В строке символов изменить на обратный порядок следования цепочек , составленных из малых русских букв Как реализовать? В указанной строке символов изменить на обратный порядок следования цепочек , составленных из малых русских букв. Например строка ' дым123як #1ферзь$'; должна... https://www.cyberforum.ru/ cpp-beginners/ thread2378644.html
C++ Строки, решение задание стандартными функциями https://www.cyberforum.ru/ cpp-beginners/ thread2378638.html
Задание: В строке имеются лишние проблемы Нужно преобразовать ее так, чтобы между словами был ровно один пробел. Подскажите, с помощью какие стандартных функций строк можно решить эту задачу? На...
Работа с ассоциативными массивами C++
Всем привет. Можете объяснить на примере, как работает ассоциативный массив? Задача для примера такая, получаем строку символов. В строке цифры и буквы латинского алфавита. Необходимо занести их в...
C++ Напечатать индексы всех равных элементов матрицы
Напечатайте индексы всех равных элементов произвольного массива А(N;N).
C++ Переставить строки и столбцы квадратной матрица А, чтобы алгебраические суммы произведений элементов Так переставить строки и столбцы квадратной матрица А, чтобы алгебраические суммы произведений элементов i-го столбца и i-й строки (знак суммы, сверху n, снизу j = 1) a(ij)*a(ji) убывали при... https://www.cyberforum.ru/ cpp-beginners/ thread2378595.html
C++ Найти корни нелинейного уравнения https://www.cyberforum.ru/ cpp-beginners/ thread2378594.html
Задание: Реализуйте алгоритмы методов нахождения корней нелинейного уравнения заданного согласно варианту и вычислите все его корни в заданном диапазоне. Входными данными являются: ...
C++ Вывод определенного количества символов заданной строки текста в обратной последовательнгости Есть примерный код: int main() { setlocale(LC_ALL, "Russian"); cout << "Введите строку" << endl; std::string str; getline(cin, str); int n = 0; cout << "Сколько символов (слева)... https://www.cyberforum.ru/ cpp-beginners/ thread2378592.html
6 / 6 / 0
Регистрация: 16.06.2018
Сообщений: 22
23.12.2018, 18:58  [ТС] 0

Потенциально неинициализированная локальная переменная-указатель (Ошибка C4703) - Как исправить? - C++ - Ответ 13187280

23.12.2018, 18:58. Показов 2605. Ответов 7
Метки (Все метки)

Ответ

Спасибо, но я сделал только это:
Цитата Сообщение от L0M Посмотреть сообщение
В строке 13
C++Выделить код1
int **KMatrix = nullptr, **KnArray = nullptr;
Программа запустилась. Как сделать это я не понимаю:
Цитата Сообщение от L0M Посмотреть сообщение
В тех case'ах, где НЕ создаётся, но используется матрица, поставить проверку указателя на nullptr с выводом диагностического сообщения, если матрица ещё не создана.
В тех case'ах, где создаётся матрица, поставить проверку указателя на nullptr: если матрица уже существует, сначала надо уничтожить старую матрицу, а потом создавать новую.
И ещё у меня ошибка выскакивает при попытке вывести на экран массив(на скрине), я так понимаю это либо из файла неправильно вводит в массив, либо это связано с тем, что вы мне написали. Файл я прикрепил.
Вот изменённый код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
#include "stdafx.h"
#include <iostream>
#include <ctime>
#include <fstream>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "rus");
    int n = 0, size = 0;
    short int change = 1;
    while (change != 0)
    {
        int **KMatrix = nullptr, **KnArray = nullptr;
        cout << "\n--------------------------------------------------\n";
        cout << " Меню:" << endl;
        cout << "  1 - Ввод разреженного массива из файла;" << endl;
        cout << "  2 - Преобразование разреженного массива в массив по схеме Кнута;" << endl;
        cout << "  3 - Вывод рязреженного массива на экран;" << endl;
        cout << "  4 - Вывод массива по схеме Кнута на экран;" << endl;
        cout << "  5 - Получение значения элемента по номеру строки и номеру столбца;" << endl;
        cout << "  6 - Определение максимального значения среди ненулевых элементов в указанном столбце;" << endl;
        cout << "  0 - Выход из программы.";
        cout << "\n--------------------------------------------------\n";
        cout << " Ввод: "; cin >> change;
        cout << endl;
        switch (change)
        {
        case 1:
        {
            ifstream Matrix("C:\\Users\\1\\Desktop\\ТОГУ\\УИТС (аб)-71\\2 курс\\III симестр\\СТАЛ программы\\MatrKnut\\RazMatr.txt");
            if (!Matrix.is_open())
            {
                cout << "\n  Не удалось открыть файл!\n";
                change = 0;
            }
            else
            {
                Matrix >> size;
                KMatrix = new int*[size];
                for (int i = 0; i < size; i++)
                {
                    KMatrix[i] = new int[size];
                    for (int j = 0; j < size; j++)
                    {
                        Matrix >> KMatrix[i][j];
                        if (KMatrix[i][j] != 0)
                            n++;
                        if (Matrix.eof())
                            break;
                    }
                }
            }
            Matrix.close();
            if (KMatrix != nullptr)
            {
                cout << endl;
                cout << " Ввод массива из файла был успешно произведен!" << endl;
                cout << " Размер разреженного массива: " << size << "x" << size << "." << endl;
                cout << endl;
            }
            else
                cout << endl << " Не удалось произвести ввод разреженного массива из файла!" << endl << endl;
            break;
        }
        case 2:
        {
            int k = 0;
            if (n != 0)
            {
                KnArray = new int*[n];
                for (int i = 0; i < n; i++)
                {
                    KnArray[i] = new int[3];
                    for (int j = 0; j < 3; j++)
                    {
                        if (KMatrix[i][j] != 0)
                        {
                            KnArray[k][0] = i;
                            KnArray[k][1] = j;
                            KnArray[k][2] = KMatrix[i][j];
                            k++;
                        }
                    }
                }
                if (KnArray != nullptr)
                {
                    cout << endl;
                    cout << " Рязреженный массив успешно удалось преобразовать в массив по схеме Кнута!";
                    cout << endl << " Размер массива: " << n << "x3.";
                    cout << endl;
                }
                else
                    cout << " Не удалось преобразовать массив!" << endl;
            }
            else
                cout << endl << " Количество ненулевых элементов равно 0, массив не удасться преобразовать." << endl << endl;
            break;
        }
        case 3:
        {
            if (size != 0)
            {
                cout << "\n Разреженный массив:" << endl;
                for (int i = 0; i < size; i++)
                {
                    for (int j = 0; j < size; j++)
                        cout << KMatrix[i][j] << "\t";
                    cout << endl;
                }
                cout << endl;
            }
            else
                cout << endl << " Размер массива равен 0!" << endl << endl;
            break;
        }
        case 4:
        {
            cout << "\n Массив:" << endl;
            for (int i = 0; i < n; i++)
                for (int j = 0; j < 3; j++)
                    cout << KnArray[i][0] << "\t" << KnArray[i][1] << "\t" << KnArray[i][2] << endl;
            cout << endl;
            break;
        }
        case 5:
        {
            int i, j;
            cout << " Ввод данных:" << endl;
            cout << "  Введите номер строки: "; cin >> i;
            cout << "  Введите номер столбца: "; cin >> j;
            cout << endl << " Значение элемента, хранящиегося по адресу [" << i << "][" << j << "]: " << KnArray[i][j];
            cout << endl;
            break;
        }
        case 6:
        {
            int j, max = 0;
            cout << " Введите номер столбца: "; cin >> j;
            for (int i = 0; i < n; i++)
            {
                if (KnArray[i][j] != 0)
                    if (KnArray[i][j] > max)
                        max = KnArray[i][j];
            }
            cout << " Максимальное значение среди ненулевых элементов: " << max << endl;
        }
        case 0:
            break;
        default:
        {
            cout << "\n Неверный выбор! Попробуйте ещё раз!";
            break;
        }
        }
        if (KMatrix != nullptr && KnArray != nullptr)
        {
            for (int i = 0; i < size; i++)
                delete[] KMatrix[i];
            delete[] KMatrix;
            for (int i = 0; i < n; i++)
                delete[] KnArray[i];
            delete[] KnArray;
        }
        else
        {
            delete[] KMatrix;
            delete[] KnArray;
        }
    }
    cout << "\n Время работы программы = " << clock() / 1000.0 << " сек.\n";  //вывод времени работы программы
    system("pause");
    return 0;
}


Вернуться к обсуждению:
Потенциально неинициализированная локальная переменная-указатель (Ошибка C4703) - Как исправить? C++
0
Миниатюры
Потенциально неинициализированная локальная переменная-указатель (Ошибка C4703) - Как исправить?  
Вложения
Тип файла: txt RazMatr.txt (56 байт, 3 просмотров)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.12.2018, 18:58
Готовые ответы и решения:

Исправить ошибку: "C4703: используется потенциально неинициализированная локальная переменная-указатель"
Вообщем выдает одну ошибку в функции добавления в 76 строке, а именно &quot;Ошибка 1 error C4703:...

Error C4703: используется потенциально неинициализированная локальная переменная-указатель
// prog8.cpp: определяет точку входа для консольного приложения. #include &lt;stdio.h&gt; #include...

Ошибка C4703 используется потенциально неинициализированная локальная переменная-указатель "A"
Помогите не могу понять, что не так то, уже многое перепробовал #include &quot;stdafx.h&quot; #include...

Error C4703: используется потенциально неинициализированная локальная переменная-указатель "pel"
#include &quot;vector.h&quot; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;locale.h&gt; int main() {...

7
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.