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

new, delete и указатель - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Калькулятор http://www.cyberforum.ru/cpp-beginners/thread649320.html
Всем привет) Начну с того что я не программист... Но вот решил просто освоить для себя. Выбрал язык Си. Купил книгу начал читать. Написал первую более менее законченную программу))) Калькулятор. v 0.2 #include <windows.h> #include <conio.h> #include <stdio.h>
C++ Помощь в изучении Ребят, вообщем сам процесс этот не представляю пока, вообщем хотелось бы заниматься геймдевом, но проблема в изучении( Не могли бы конкретную литературу предложить(бегаю от одного к другому а конкретно выбрать не могу), а желательно последовательность изучения тем/разделов (с/с++, winapi,direcxt и тд). Просьба отписать..заранее спасибо. http://www.cyberforum.ru/cpp-beginners/thread649311.html
C++ Считать структурированные данные в массив, проверить их корректность
Коротко: по заданию рассовать структурированные данные в массив проверить их корректронить(в числовом не должно быть букв), а потом вывести на экран. Сами данные смотреть вложенный файл! (если иероглифы шрифт на terminal поменяйте, просто напомнил)
C++ Вывод system() в программу
Так вот: Нужно каким-либо обазом читать вывод system() из самой программы. Я знаю о возможности записывать вывод в файл, а затем читать его, но это медленно. есть варианты?
C++ The varriable is being used without being defined http://www.cyberforum.ru/cpp-beginners/thread649290.html
The varriable 'i' is being used without being defined. Где ошыбка? #include <iostream> #include <math.h> using namespace std; void main() { int x,y,p,q,a,b,c,d; double A,B,D,x1,x2,x3,y1,y2,y3,f,i;
C++ Создавать файлы с результатами, не превышающие заданного размера Имеется цикл, результаты которого записываются в файл. Нужно создавать файлы с результатами, не превышающие заданного размера (500 КВ). Вот часть кода. #include "stdafx.h" #include <iostream> #include <fstream> using namespace std; void pro() { char q="test"; подробнее

Показать сообщение отдельно
ps10n1ck
 Аватар для ps10n1ck
53 / 47 / 2
Регистрация: 10.11.2010
Сообщений: 132
10.09.2012, 02:31     new, delete и указатель
имеется примерно следующий код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
int *p1;
int *p2;
int *ptr;
 
......
// выделение памяти под массив (где-то в начале)
int *p1 = new int[10];
ptr = p1
 
.......
 
// далее необходимо перевыделение памяти для нового массива
if(ptr == p1) {
  p2 = new int[NEWSIZE];
  memcpy(p2, p1, sizeof(int)*TOTAL_ELEMENTS);
  delete [] p1;
}
else { // ptr == p2
  p1 = new int[NEWSIZE];
  memcpy(p1, p2, sizeof(int)*TOTAL_ELEMENTS);
  delete [] p2;
}
 
.....
 
delete [] ptr; // ?????
вопрос в следующем:
т.к. я не знаю какой массив останется на конечном этапе выполнения программы, мне нужно освободить занятую им память, освободится ли память если я буду удалять через указатель ptr?
По идее указатель ptr указывает на начало массива и применение delete [] ptr должно освободить занятую память массивом p1 или p2 в зависимости от того, на какой массив указывает ptr. Или я ошибаюсь...
Голова уже вообще не варит, пойти бы выспаться, но мучает данный вопрос =)
p.s: Про класс vector знаю - нужен ответ именно по данной ситуации.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru