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

Удаление памяти - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Закрывается консоль http://www.cyberforum.ru/cpp-beginners/thread653262.html
Здравствуйте! У меня такая проблема: делал программу по переводу галлонов в литры, но после ввода кол-ва галлонов и нажатия ENTER консоль закрывается и не выводит получившееся кол-во литров....
C++ Задача: движущиеся пчёлы Описание Маленькая пчела движется по соткам, как показано на картинке снизу. В момент передвижения, она может переместиться лишь на соседнюю сотка с большим номером. Например, с сотки под номер 1... http://www.cyberforum.ru/cpp-beginners/thread653242.html
Доступ к элементу массива через указатель C++
надо осушествить следуюшие: pointerArr=21; когда: main.cpp #include <QtCore/QCoreApplication> #include "Array.h" #include "ProtectedArray.h" #include <string> using namespace...
C++ Проверки ввода
Подскажите пожалуйста: 1. Как сделать проверку "введено число или не-число" ? 2. Если при вводе используется переменная char, как сделать проверку на количество введенных символов, чтоб если...
C++ Как в Dev C++ передать параметры командной строки http://www.cyberforum.ru/cpp-beginners/thread653197.html
Мне необходимо данные брать из файла. Путь к файлу нужно передавать как параметр командной строки argv. Подскажите пожалуйста как это делать в Dev C++
C++ обработка изображений ( вывод картинки на экран) День добрый всем. Возник вопрос) Опишу ситуацию, пишу для инста небольшую программу для превращения из цветного изображения постепенно в монохромное. Для начала нужно просто из цвета в чб. Есть... подробнее

Показать сообщение отдельно
fridi
-8 / 40 / 1
Регистрация: 21.09.2009
Сообщений: 145

Удаление памяти - C++

17.09.2012, 14:16. Просмотров 509. Ответов 4
Метки (Все метки)

Здравствуйте! есть функция
char * systeminfo::getUserName()
{
char *buf=new char [20];
strcpy(buf,"aaa");
return buf;
}
как правильно удалять такую память?
main()
{
char *sysName=systeminfo::getUserName();

//delete[]sysName;//так удаляется полностью вся память на что указывает sysName;
//ок произведем небольшой опыт.
int a_sysName=(int)sysName;//Определяем адрес на что указывает sysName; a_sysName=&buf[0];
//настроим еще один указатель на эту область памяти
char *pt=(char*)a_sysName; //Берем адресс
//Теперь удаляем указатель оригинальный
delete sysName;
/* Вот дальше идет интересно почему pt не указывает на строку "aaa"?
Ведь я только удалял указатель sysName а не на что он указывает стало быть строка по адресу
в a_sysName -адресс первый байт там должна хранится "aaa";
*/
Вообщем почему когда я удаляю
delete sysName;
память удаляется так-же как если бы я ее удалил через
delete[] sysName;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru