Форум программистов, компьютерный форум CyberForum.ru

Указатель, выделение памяти под него - C++

Восстановить пароль Регистрация
 
VLK
 Аватар для VLK
192 / 161 / 12
Регистрация: 05.05.2013
Сообщений: 1,221
25.07.2013, 18:03     Указатель, выделение памяти под него #1
подскажите:

C++
1
2
int *var;
*var = 1;
и
C++
1
int *var = new int(1);
эти 2 разные записи делают одно и тоже? т.е. первая запись тоже выделяет память под указатель?

Просто на сколько я вычитал объявляя указатель, я должен обязательно под него выделить память используя оператор new, но в 1-м примере нет оператора new.

Т.е. оно функционирует так же как и это (запись разная, а выполняемая задача одна и та же):
C++
1
2
int x = 1;
x++;
и
C++
1
2
int x = 1;
x = x+1;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.07.2013, 18:03     Указатель, выделение памяти под него
Посмотрите здесь:

C++ выделение памяти под переменную
Выделение памяти под масссив C++
C++ Выделение памяти под структуры
C++ выделение памяти под структуру
Выделение памяти под указатель C++
Выделение памяти под массивы C++
Выделение памяти под структуру C++
выделение памяти под структуру C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
25.07.2013, 18:15     Указатель, выделение памяти под него #2
Цитата Сообщение от VLK Посмотреть сообщение
C++
1
2
int *var;
*var = 1;
этот указатель содержит мусор т.е. указывает на левый адрес - и память по этому адресу вам никто трогать не разрешал. в лучшем случае программа упадет и такая ошибка будет обнаружена. в худшем - все будет работать до первого полнолуния.

Добавлено через 1 минуту
Цитата Сообщение от VLK Посмотреть сообщение
int *var = new int(1);
тут же вы запросили память, вам её выделили и вернули на неё указатель, если конечно память выделили, если же нет оператор new выкинит исключение
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
25.07.2013, 18:15     Указатель, выделение памяти под него #3
Первый код - UB, но в простом hello world компилятор может запросто вырезать и указатель и присвоение, сразу просчитав конечное значение в местах, где используется указатель.
Yandex
Объявления
25.07.2013, 18:15     Указатель, выделение памяти под него
Ответ Создать тему
Опции темы

Текущее время: 04:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru