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

Динамическая память(толи я дурак, то ли правда лыжи не едут) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Пожалуйста подскажите, что означает оператор! http://www.cyberforum.ru/cpp-beginners/thread950097.html
Доброго времени суток. Перевожу Сишный исходник в Делфи и столкнулся с такой строкой v5 = **(_DWORD **)v6->h_addr_list; Подскажите пожалуйста, что она означает, а в частности что означает **(_DWORD...
C++ Чтение графических файлов Здравствуйте уважаемые участники форума. Есть задание для курсового проекта, связанная с программированием C++. Приведу небольшой пример: имеется графический файл, допустим формата jpeg, нужна... http://www.cyberforum.ru/cpp-beginners/thread950094.html
Программирование циклического вычислительного процесса C++
12. Дан набор ненулевых целых чисел; признак его завершения — число 0. Вывести сумму всех положительных четных чисел из данного набора. Если требуемые числа в наборе отсутствуют, то вывести 0. ...
C++ Как же все-таки лучше всего перегружать операторы?
1. Нужно ли использовать friend там, где это возможно? (или не стоит злоупотреблять где-нибудь?) 2. Стоит ли при перегрузке бинарного оператора "+" делать его обособленным от класса? // свободная...
C++ Нахождение корня уравнения http://www.cyberforum.ru/cpp-beginners/thread950029.html
найти корни уравнения и отделить один из них методом деления отрезка пополам x^2=sinx
C++ как правильно создать opengl проэкт в IDE code blocks чтобы компилировался? создаю новый проект опенгл, но нифига не компилируется выдает кучу ошибок подробнее

Показать сообщение отдельно
Байт
Нарушитель
Эксперт C
16652 / 10928 / 1673
Регистрация: 24.12.2010
Сообщений: 21,277
09.09.2013, 12:09
SatanaXIII, с интересом ознакомился с темой, но отписаться решил здесь, чтоб свои делетанством не раздражать уважаемых диспутантов. Уверенности, что мой "хакерский" способ сработает, у меня нет, как нет и уверенности, что m[-1] - размер массива. Просто, если бы мне заказали создать механизм кучи, я бы сделал так. Но экспериментов не проводил.
По поводу delete (как и free) могу сказать, что он делает очень важную вещь - присоединяет этот кусок памяти с списку свободной. И все! К сожалению, delete не обнуляет указатель, а мог бы (в отличии от free). Не знаю, что делает delete(NULL), просто стараюсь таких штук не допускать, как и повторного удаления. Для пущей безопасности сделал себе еще на Си такую функцию
C
1
2
3
4
5
6
void myfree(void **pp)
{
  if (pp==NULL || *pp==NULL) return;
  free(*pp);
  *pp=NULL;
}
Что мог бы взять на себя delete, но почему-то не взял

Добавлено через 17 минут
SatanaXIII, Хочу добавить по поводу вашего недоумения от отсутствия в языке средства типа sizeof для динамических массивов, что ваше недоумение полностью разделяю. Ведь еще K&R могли добавить в язык что-то вроде sizearray, который бы работал как sizeof для стековых и статических массивов, а для динамических доставал бы ту самую m[-1]. Хотя это слегка усложнило бы концепции языка, а они ж известные минималисты! Ну чтож, и на Солнце бывают пятна, а она все-таки вертится...
5
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.