С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
VLK
194 / 163 / 12
Регистрация: 05.05.2013
Сообщений: 1,196
#1

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

25.07.2013, 18:03. Просмотров 440. Ответов 2
Метки нет (Все метки)

подскажите:

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;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.07.2013, 18:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Указатель, выделение памяти под него (C++):

Выделение памяти под указатель - C++
Доброго времени суток. Возник такой вопрос: для любой программы, насколько мне известно, выделяется свой кусочек оперативной памяти. Когда...

Выделение памяти под указатель - C++
Здравствуйте форумчане,у меня возник маленький вопрос:) Почему sizeof(char) дает результат в 1 байт, а sizeof(char*) ) дает 4 байта.Как...

Указатель. Динамическое выделение памяти - C++
На мое мнение должно работать, но что-то не так.Помогите разобраться буду очень благодарен. int main() { char *name; name = new...

Указатель на Класс_1 в Классе_2 (динамическое выделение памяти) - C++
Как фиксануть ошибку? Может не правильно как-то вызываю? GetDifference не менять, она должна принимать класс по ссылке! P.s. или если...

Выделение памяти под матрицу - C++
Существует такой класс: class matr{ public: double **m; // адрес матрицы int mi, my; //стобцы, строки //функции ...

Выделение памяти под wchar_t - C++
вот такой код: char *str=new char; strcpy(str,"stroka"); int l=strlen(str); wchar_t *wstr=new wchar_t; mbstowcs(wstr,str,l); ...

2
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 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 выкинит исключение
1
Croessmah
Ушел
Эксперт CЭксперт С++
13558 / 7708 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
25.07.2013, 18:15 #3
Первый код - UB, но в простом hello world компилятор может запросто вырезать и указатель и присвоение, сразу просчитав конечное значение в местах, где используется указатель.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.07.2013, 18:15
Привет! Вот еще темы с ответами:

Выделение памяти под массив - C++
в массиве данных хранять в последовательных ячейках памяти В программе, выделенна память под массив, для ввода данных пользователем. ...

Выделение памяти под файл - C++
Всем доброго времени суток. Написал некоторую структуру, работают все пунктики, все функции, но нашёлся недочёт. Если записывать в файл...

Выделение памяти под строку - C++
Никак не могу понять, в чем проблема, подскажите пожалуйста. Предположим, инициализирую переменную, ожидая получить строку из 10...

Выделение памяти под структуры - C++
Когда я только знакомился с кодингом на С(С++) я скачивал с инета очень много всякой литературы... Так вот... Недавно я начал заново...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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