Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
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
26.12.2018, 06:18  [ТС] 0

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

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

Ответ

Извините, что так вышло, но вы были правы)).
Цитата Сообщение от L0M Посмотреть сообщение
Остались большие сомнения по поводу п.5 в меню. Мне кажется, что имелось ввиду вывести значение элемента по номеру строки и номеру столбца разреженной матрицы, пользуясь матрицей Кнута. Иначе как-то совсем примитивно просто. Но трогать не стал.
И даже больше, в общем, вот код:
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
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
#include "stdafx.h"
#include <iostream>
#include <ctime>
#include <fstream>
using namespace std;
 
void DeleteMatrix(int ***matrix, int size)
{
    if (*matrix == nullptr || size <= 0)
        return;
    for (int i = 0; i < size; ++i)
        delete[](*matrix)[i];
    delete[](*matrix);
    *matrix = nullptr;
}
int main()
{
    setlocale(LC_ALL, "rus");
    int KnSize = 0, size = 0, number = 0;
    int **KnArray = nullptr;
    short int change = 1;
    do
    {
        cout << "\n--------------------------------------------------\n";
        cout << " Меню:" << endl;
        cout << "  1 - Ввод массива по схеме Кнута из файла;" << endl;
        cout << "  2 - Вывод массива по схеме Кнута на экран;" << endl;
        cout << "  3 - Вывод полной матрицы на экран;" << endl;
        cout << "  4 - Получение значения элемента по номеру строки и номеру столбца;" << endl;
        cout << "  5 - Определение максимального значения среди ненулевых элементов в указанном столбце;" << 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;
                DeleteMatrix(&KnArray, KnSize);                    //массив по схеме Кнута будет неактуален для новых данных
                KnSize = 0;
                for (int i = 0; i < size; i++)
                    for (int j = 0; j < size; j++)
                    {
                        Matrix >> number;
                        if (number != 0)
                            KnSize++;
                    }
            }
            if (KnSize > 0)
            {
                KnArray = new int*[KnSize];
                for (int i = 0; i < KnSize; i++)
                    KnArray[i] = new int[3];
                int k = 0;
                if (KnSize != 0)
                {
                    Matrix.seekg(2, ios::beg);
                    for (int i = 0; i < size; i++)
                        for (int j = 0; j < size; j++)
                        {
                            Matrix >> number;
                            if (number != 0)
                            {
                                KnArray[k][0] = i;
                                KnArray[k][1] = j;
                                KnArray[k][2] = number;
                                k++;
                            }
                        }
                    number = 0;
                }
                if (KnArray != nullptr)
                {
                    cout << endl;
                    cout << " Ввод массива по схеме Кнута окончен успешно!";
                    cout << endl << " Размер массива: " << KnSize << "x3.";
                    cout << endl;
                }
                else
                    cout << " Не удалось ввести массив!" << endl;
            }
            else
                cout << endl << " Количество ненулевых элементов равно 0, массив не удасться создать." << endl << endl;
            Matrix.close();
            break;
        }
        case 2:                                                  //Вывод массива по схеме Кнута на экран
        {
            if (KnArray == nullptr)
            {
                cout << endl << " Массив по схеме Кнута не создан!" << endl << endl;
                break;
            }
            cout << "\n Массив:" << endl;
            for (int i = 0; i < KnSize; i++)
                cout << KnArray[i][0] << "\t" << KnArray[i][1] << "\t" << KnArray[i][2] << endl;
            cout << endl;
            break;
        }
        case 3:                                                  //Вывод полной матрицы на экран
        {
            if (KnArray == nullptr)
            {
                cout << endl << " Массив по схеме Кнута не создан!" << endl << endl;
                break;
            }
            cout << "\n Массив:" << endl;
 
            break;
        }
        case 4:                                                  //Получение значения элемента по номеру строки и номеру столбца
        {
            if (KnArray == nullptr)
            {
                cout << endl << " Массив по схеме Кнута не создан!" << endl << endl;
                break;
            }
            int i = 0, j = 0;
            cout << " Ввод данных:" << endl;
            cout << "  Введите номер строки: "; cin >> i;
            if (i > (KnSize - 1))
            {
                while (!(i < (KnSize)))
                {
                    cout << "\n  Такой строки нет в массиве! Попробуйте ещё раз." << endl;
                    cout << "  Введите номер строки: "; cin >> i;
                }
            }
            cout << "  Введите номер столбца: "; cin >> j;
            if (j > size)
            {
                while (!(j < size))
                {
                    cout << "\n  Такого столбца нет в массиве! Попробуйте ещё раз." << endl;
                    cout << "  Введите номер столбца: "; cin >> j;
                }
            }
            cout << endl << " Значение элемента, хранящиегося по адресу [" << i << "][" << j << "]: " << KnArray[i - 1][j - 1];
            cout << endl;
            break;
        }
        case 5:                                                  //Определение максимального значения среди ненулевых элементов в указанном столбце
        {
            if (KnArray == nullptr)
            {
                cout << endl << " Массив по схеме Кнута не создан!" << endl << endl;
                break;
            }
            int j = 0, max = 0;
            cout << "  Введите номер столбца: "; cin >> j;
            if (j > size)
            {
                while (!(j < size))
                {
                    cout << "\n  Такого столбца нет в массиве! Попробуйте ещё раз." << endl;
                    cout << "  Введите номер столбца: "; cin >> j;
                }
            }
            j -= 1;
            for (int i = 0; i < KnSize; 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;
        }
        }
    } while (change != 0);
    DeleteMatrix(&KnArray, KnSize);
    cout << "\n Время работы программы = " << clock() / 1000.0 << " сек.\n";  //вывод времени работы программы
    system("pause");
    return 0;
}
Надо вывести полною матрицу с нулями на основе полученного массива по схеме Кнута, и на его же основе выполнить пп. 4 и 5 - поиск и определение. У меня уже нет идей, как это сделать. Я пробовал, но у меня тока выводилась матрица размером KnSize*KnSize, состоящая полностью из 0.

Вернуться к обсуждению:
Потенциально неинициализированная локальная переменная-указатель (Ошибка C4703) - Как исправить? C++
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.12.2018, 06:18

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Выдает ошибку C4703: используется потенциально неинициализированная локальная переменная-указатель "a"
Выдает ошибку C4703: используется потенциально неинициализированная локальная переменная-указатель...

Используется потенциально неинициализированная локальная переменная-указатель
// ex4.cpp: определяет точку входа для консольного приложения. // ...

Ошибка: Используется потенциально неинициализированная локальная переменная
Ошибка: Используется потенциально неинициализированная локальная переменная prev - 48 строчка,...

"Используется потенциально неинициализированная локальная переменная - указатель"
Доброго времени суток! Возникла проблема в программе, на 68 строке пишет, что &quot;используется...

Использована неинициализированная локальная переменная. Не пойму, как исправить
У меня есть структура typedef struct { char *processor, *plata; float chastota; int...

Неинициализированная локальная переменная - исправить ошибку
не могу устранить ошибку &quot;использована неинициализированная локальная переменная a&quot; #include...

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