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

Объявление переменной - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ NULL http://www.cyberforum.ru/cpp-beginners/thread55596.html
Здравствуйте!!! Может кто-нибудь знает для чего служит на с++ ключевое слово(оператор) NULL ?? Покажите пожалуйста несколько примеров для его использования??
C++ Опять квадратное уравнение. Хай 2 Ол! Помогите с задачкой: 3.17. Для данных чисел a, b и c определить, сколько корней имеет урав-нение ax2+bx+c = 0, и распечатать их. Если уравнение имеет комплексные кор-ни, то распечатать их в виде v+iw. (Задачник Руденко Т.В.) основной алгоритм непонятен.. я сам учусь на другом языке.. Буду рад за любой совет. http://www.cyberforum.ru/cpp-beginners/thread55588.html
Наложение текста на картинку C++
Ребят есть такая проблемrа, нужно наложить текст на картинку в примерно таком виде: функция(<изображение>, <текст>, любые параметры другие , координаты и т.п.) { тело функции } return <изображение_с_наложенным _текстом> Буду весьма признателен, если есть что-то подобное) а также с удовольствием приму и любое пособие, статейку, и т.п. про работу с растровой графикой(точнее ее изменение)...
C++ Преобразовать сроку чисел CHAR в массив чисел типа int
Помогите реализовать идею... Прегнать введённую сроку чисел char в массив int ... чтоб элемент char str соответсвовал int mas.... #include <iostream.h> #include <conio.h> #include <stdlib.h> #include <stdio.h>
C++ решение матриц http://www.cyberforum.ru/cpp-beginners/thread55566.html
определить,является ли отрицтельным числом-сумма элементов,которые содержатся в квадратной матрице над побочной диагональю. только на языке СИ пожалуста)
C++ rand() & srand() кто знает как работает пара функции rand() и srand(). я знаю как это пара функци работает.мне всегда интересовало как это зделано .одно очевидно что один из них берет время системы.а как они связаны не понимаю:) может быть кто то понял как это все работает?объясните пожалуйста. подробнее

Показать сообщение отдельно
novi4ok
549 / 502 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
11.10.2009, 14:50     Объявление переменной
Цитата Сообщение от G-Cat Посмотреть сообщение
Т.е. я правильно понимаю, что всё таки правильная запись будет:
C++
1
2
int *a = new int;
*a = 2;   // теперь здесь не будет ошибки
В чём приемущества такого вида объявления и присваивания значения переменной?
ни в чем: одни недостатки.
0. переменная-указатель все равно "автоматическая", и занимает столько же памяти, сколько и целая переменная. т.е. мы не экономим память.
1. происходит обращение к процедурам выделения памяти под переменную, на что затрачивается время.
2. память под переменную нужно освободить воизбежание утечки памяти, на что тоже уйдет время.
3. на код, выделяющий и освобождающий память, уйдет памяти на порядок больше, чем "сэкономится" на этой целой переменной.

в общем, такой код нужно выбрасывать сразу и переписывать нормально, чтоб и людЯм, и себе понятно было:

C++
1
int a = 2; // или 3, от цели зависит
и всегда писать так, если позволяют обстоятельства. а фокусы с указателем - только там, где это оправдано.

Цитата Сообщение от G-Cat Посмотреть сообщение
2 novi4ok:
Я правильно понял, что запись:
C++
1
2
int *a = new int (3);
*a = 2;
означает, что переменной a, через указатель, присваивается значение 3, но указатель хранит адрес этой ячейки памяти. А потом все дружно принимают значение 2?
нет, переменной а не присваивается значение 3, т.к. она имеет тип "указатель на целое". ей присваивается значение адреса памяти, выделенного для новой целой переменной. этой переменной сразу после выделения памяти присваивается значение 3. затем ей (новой целой переменной, а не указателю на нее!) присваивается значение 2 (значение переменной "a" при этом не меняется).
 
Текущее время: 18:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru