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

Как использовать указатели при работе с массивами? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Динамический массив http://www.cyberforum.ru/cpp-beginners/thread393896.html
Подскажите, как создать двумерный массив mxn, пожалуйста!
C++ Массив строк... Здравствуйте, помогите пожалуйста, дан файл .txt, в нем неизвестное кол-во символьных строк, надо вывести все строки на экран поочередно, не сразу весь файл вывести! на Си. http://www.cyberforum.ru/cpp-beginners/thread393895.html
C++ построение графика f(x)=x^4+3x-20
Дали задание в универе, График из Mathcad'a нужно нарисовать в C, но для такого нужен Visual C или C#, а я такого уже не знаю. Помогите написать программу или дайте толковый самоучитель как оно делается. f(x)=x^4+3x-20
Как завершить цикл в OpenMP C++
Использую OpenMP для параллельных расчетов очень нужно при определенном условии экстренно завершить цикл break; с OpenMP не работает можно ли как то завершить цикл не дожидаясь его окончания ??
C++ Сделать событие изменения переменной в классе http://www.cyberforum.ru/cpp-beginners/thread393869.html
в классе есть переменные в области паблик. Надо сделать так что при изменении переменной ,выполнялось какое то событие. Ну например если кто прогал в билдере. Там есть компонент Edit. И событие OnChange. При изменении значение в Edit срабатывает OnChange. Что -то подобное для переменной класса сделать можно? паттерн какой то рубить надо?
C++ Упорядочить массив, начиная с элемента с номером К, методом "пузырька" Задан массив U(N) и натуральное число К. Сортировать элементы, начиная с элемента с номером К, за ростом. Для решения задачи применим метод "пузырька" #include <iostream.h> #include <stdio.h> #include <conio.h> int main(void) { подробнее

Показать сообщение отдельно
Гоблин
1 / 1 / 0
Регистрация: 17.10.2010
Сообщений: 29
29.11.2011, 13:40
Да, я что-то перепутал. На самом деле delete удаляет только память под сам указатель, а delete[] удаляет еще и то, на что ссылкается указатель. Пардоньте за ломаные объяснения.
C++
1
2
3
int *A = new int; // простой указатель
...
delete A; // правильное удаление, т.к. нужно удалить только А
C++
1
2
3
int *A = new int [10]; // массив
... // в том числе заполнение массива
delete []A;
Во втором случае правильно delete[] т.к. сначала очистится память под элементы массива, а потом только сам указатель на массив. Если тут использовать delete A то будет удален только указатель на массив, элементы же останутся в памяти. К слову, в современных компиляторах существуют так называемые "сборщики мусора", которые должны сгладить такую ошибку программиста и удалить элементы, однако как это работает я точно не знаю.

2Bers: Спасибо, что указали на ошибку, но было бы быстрее и проще сразу просто объяснить механизм работы оператора.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru