С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Удалить последний элемент текстового файла и напечатать в обратном порядке https://www.cyberforum.ru/ cpp-beginners/ thread2328071.html
Дан текстовый файл содержащий целые числа. Удалить последний элемент и напечатать в обратном порядке. Использовать стек.
Перегрузка операторов +=, > для enum типа C++
У меня такой вопрос, я понимаю как делать перегрузку для обычных типов данных, но мне нужно сделать для enam String& operator+=(String& left, const String& right) { return left+right; } А для оператора > вернуть true, если обьект старше обьекта-аргумента. Подскажите, пожалуйста
C++ Напишите программу, которая запрашивает натуральное число N (1≤N≤109), и выводит S -- сумму цифр этого числа Напишите программу, которая запрашивает натуральное число N (1≤N≤109), и выводит S -- сумму цифр этого числа. Sample Input 1: 2304 Sample Output 1: 9 Sample Input 2: 123456789 https://www.cyberforum.ru/ cpp-beginners/ thread2328056.html C++ Invalid operands of types 'List*' and 'List*' to binary 'operator+' https://www.cyberforum.ru/ cpp-beginners/ thread2328041.html
Я создал список из 4 елементов( 3.5.1.9)и выбивает такая ошибка когда хочу посчитать сумму предпоследнего и последнего елемента.Помогите исправить 59 строка #include <iostream> #include <conio.h> #include <string.h> #include<stdlib.h> #include<math.h> using namespace std;
Вычислить значение функции заданной разложением в ряд Тейлора C++
Помогите написать программу. Никак не могу понять что да как.( в программировании недавно, sorry если для кого то окажется слишком примитивно)
C++ Составить программу, которая содержит текущую информацию о квартирах в новом доме https://www.cyberforum.ru/ cpp-beginners/ thread2328013.html
Нужно составить программу, которая содержит текущую информацию о квартирах в новом доме. Сведения о каждой квартире: количество комнат, этаж и площадь. Язык программирования - C++. Нужен рабочий код, у самого не получается. Буду благодарен.
C++ Функция транспонирования https://www.cyberforum.ru/ cpp-beginners/ thread2328003.html
Помогите. Мне нужно написать функцию транспонирования матрицы А, (n<=5). Другая функция определяет суммы элементов каждой строки. Использовать функции для матрицы D. Я написал функцию, но не знаю, как ее применить к матрице. Еще проблема. Делал эту программу в университете, все было нормально, а как написал ее на своем компьютере, в массиве выходят только одна строчка с числами -33686019. ...
Из упорядоченных массивов размеров n и m получить новый упорядоченный массив размера n+m (не используя сортировку) C++
Из двух заданных упорядоченных числовых массивов размерности n и m получить новый упорядоченный массив размерности n+m, не используя алгоритма сортировки. это должна быть функция и в динамической памяти, параметры должны передаваться по ссылке.int *arr_plus_arr_2(int *arr, int *arr_2, int&SZ,int &size,int &size_new) { int *arr_3 = new int; for (int i = 0, j=0; i<SZ; i++, j++) { if...
C++ Программа ветвления https://www.cyberforum.ru/ cpp-beginners/ thread2327959.html
Построить программу, которая вводит координаты точки (x, y) и определяет, попадает ли точка в заштрихованную область на рисунке, который соответствует Вашему варианту. Попадание на границу области считать попаданием в область.
C++ Найти произведение двух матриц с комплексными числами( в показательной форме записи) Если разложить все поэтапно, то алгоритм будет идти по следующему сценарию: 1) Ввод нужного количества строк и столбцов для каждой матрицы; 2) Ввод любого значения (z) и угла φ для каждой ячейки строки для двух матриц (исходя из показательного представления z=(z)∙exp^φ); 3) Перевод из показательной формы z=(z)*exp^φ в алгебраическую форму z=z(cosφ +... https://www.cyberforum.ru/ cpp-beginners/ thread2327958.html
Из данного списка спортсменов распечатать сведения о тех из них, кто занимается плаванием C++
Из данного списка спортсменов распечатать сведения о тех из них, кто занимается плаванием. Попытался сделать. Но что то пошло не так и он делает не то что нужно. Помогите .... #include <iostream> using namespace std; int main() {
C++ Строки в С++ Современный подход https://www.cyberforum.ru/ cpp-beginners/ thread2327937.html
Какой все же современный подход к работе со строками в С++? В С существовали только нуль-терминированные строки типа char s; в conio.h Потом в С++ была предложена система потоковых классов вверху которой были ios c подклассами istream ostream и streambuf До сих пор в т.н. олимпиадном программировании для школьников придердиваются технологии чтения и записи в файл через ifstream...
Неэпический
18109 / 10696 / 2062
Регистрация: 27.09.2012
Сообщений: 26,939
Записей в блоге: 1
07.10.2018, 16:11 0

Выдаёт ошибку при динамическом выделении памяти - C++ - Ответ 12952321

07.10.2018, 16:11. Показов 1244. Ответов 14
Метки (Все метки)

Ответ

Цитата Сообщение от _stanislav Посмотреть сообщение
предупреждение компилятора об используемой не инициализированной локальной переменной это особенность компилятора а не стандарт
Стандарт не требует диагностики, но и не запрещает.
Цитата Сообщение от _stanislav Посмотреть сообщение
В С++ у указателей может быть строго два состояния рабочий, то есть в нем храниться какой то адрес, или не рабочий, то есть содержит 0
Эм... чего?
Цитата Сообщение от _stanislav Посмотреть сообщение
если ты напишешь просто int* p; в нем будет содержаться мусор, мусор - не корректный адрес, а это плохо.
Зависит от типа инициализации, которая будет применена для указателя,
т.е. от того, где это объявление происходит. В коде ТС там мусор, да.

Цитата Сообщение от JustLearn Посмотреть сообщение
Я верно всё усвоил?
Нет.

Цитата Сообщение от JustLearn Посмотреть сообщение
Т.е. получается, что какие-то компиляторы требует написания nullptr , а какие-то нет.
Никакие не требуют.
Цитата Сообщение от JustLearn Посмотреть сообщение
Если не написать nullptr в том компиляторе, который это требует, то сработает ошибка.
Нет. Вам же пишут в чем заключается ошибка:
C++
1
2
3
4
5
6
7
8
9
10
11
12
    int *p;//В данном случае куда указывает указатель? Куда-то, неизвестно куда.
    try {
        p = new int (87);//Если здесь вылетело исключение, то p не изменится и 
    }
    catch (bad_alloc except) {//и управление уходит в catch
        cout << "Невозможно выделить память.\n";
    }//после чего выполнение продолжается уже за try
    //а здесь используется p, который содержит непонятно что.
    //так что должно получиться при *p, если p хрен знает куда смотрит?
    cout << "Значение по адресу " << p << " равно: " << *p << endl;
    //вот компилятор и орет, что нашел такую вот багу в твоем коде -
    //использование потенциально неинициализированной переменной
А если изначально инициализировать p, то компилятор перестанет ругаться этими гадкими словами, но при это проблема никуда не уйдет:
C++
1
2
3
4
5
6
7
8
9
10
    int *p = nullptr;//Теперь у нас указатель инициализирован
    try {
        p = new int (87);//Если здесь вылетело исключение, то p не изменится и 
    }
    catch (bad_alloc except) {//и управление уходит в catch
        cout << "Невозможно выделить память.\n";
    }//после чего выполнение продолжается уже за try
    //а здесь используется p, который содержит nullptr.
    //так что должно получиться при *p?
    cout << "Значение по адресу " << p << " равно: " << *p << endl;
То есть, вне зависимости от инициализации указателя значением nullptr,
структура данного кода не позволяет нормально работать.
Цитата Сообщение от JustLearn Посмотреть сообщение
Некоторые компиляторы просят писать nullptr чтобы не происходило неопределенного поведения (UB)
Нет, Ваш компилятор просит писать код так, чтобы не было использования неинициализированной переменной.
hoggy привел пример как написать код, чтобы такого использования не было.

Вернуться к обсуждению:
Выдаёт ошибку при динамическом выделении памяти C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.10.2018, 16:11
Готовые ответы и решения:

Ошибка при динамическом выделении памяти
почему у меня возникет ошибка вот тут struct TOVAR *New = new struct TOVAR; пишит недопустимый...

Ошибка при динамическом выделении памяти
Я не понимаю почему, но почему-то пример по динамическому выделению памяти, взятый с этой...

Создание исключения при динамическом выделении памяти
Вот код из учебника в нем мне все понятно. #include&lt;iostream&gt; #include&lt;cstdlib&gt; //exit()...

Выравнивание при динамическом выделении памяти под массив
Добрый вечер. Для того, чтобы выделить память под массив динамически и выровнять указатель по 16...

14
07.10.2018, 16:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.10.2018, 16:11
Помогаю со студенческими работами здесь

Cin.getline() не работает при динамическом выделении памяти
Почему в таком коде cin.getline() работает не так как надо? Если очистить поток, то будет все...

Использование конструктора базового класса при динамическом выделении памяти
Есть базовый класс, от него наследуются несколько классов, свой конструктор я определил в базовом...

Ошибка на динамическом выделении памяти
программа ниже безупречно выполнялась под С++Builder 6.0 (консольное приложение). При переводе ее...

Немного о динамическом выделении памяти ...
объявление данных в классе: class Employee {.......... private: char *firstName;...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru