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

Дайте ссылку или пример на интересующий меня вопрос. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ На массив и знание математики http://www.cyberforum.ru/cpp-beginners/thread240697.html
1. Определить, в какой координатной четверти нахочится точка заданная координатами (x,y). 2. Массив Y Вычислить среднее геометрическое положительных элементов массива Y. Y-целые числа. 3. Найти...
C++ сниффер сети Хочу написать сниффер сети на С++. Подскажите пожалуйста какие-нибудь книжки в этой области. http://www.cyberforum.ru/cpp-beginners/thread240692.html
контрольные суммы C++
всем здравствуйте. я долго искал подходящий топик, но не нашёл и решил создать, так как то, что находил мне не подходило теперь по делу. меня сейчас посадили за один стареньки процессор еще с RISC...
C++ программа со структурами!!!!
помогите пожалуста со структурами, и если не сложно при структурах опишите что делает данная строчка) заранее огромное спасибо! вот задание Создать программу, позволяющую вводить элементы массива...
C++ Ввод/вывод в С++: не могу разобраться. http://www.cyberforum.ru/cpp-beginners/thread240652.html
#include<iostream> using namespace std; #include<cstdlib> const int SIZE = 30; struct bop { char fullname; char title; char bopname; int preference; };
C++ Структуры Помогите пожалуйста с задачей: вот условие: Багаж пассажира характеризуется количеством вещей (целый тип) и общим весом вещей (вещественный тип). Дан список из сведений о багаже 10 пассажиров.... подробнее

Показать сообщение отдельно
talis
792 / 544 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
10.02.2011, 14:37
QWAN, вы писали:
C++
1
2
//Я обьявляю указатель на этот массив FRAGMENT.
FRAGMENT *mf;
Указатель-то вы объявили, а сам массив не создали.

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
27
FRAGMENT *mf = 0;
int mf_size = 0;
 
//...
void construct_fragment( int size )
{
   mf_size = size;
   mf = new FRAGMENT[ size ];
}
 
void delete_fragment()
{
   mf_size = 0;
   delete [] mf;
   mf = 0;
}
 
void cout_all_fragments()
{
   if(mf == 0) return; //нулевой указатель. объекта не существует.
 
   for( int i = 0; i < mf_size; i++ )
   {
      cout << mf[i].Size_X;
      //...
   }
}
В этом случае int counter вам не нужен (если, конечно, вы не связанный список делаете. А вы, вроде, не связанный список делаете )

На словах: указатель - переменная, хранящая в себе адрес какого-то объекта. То, что вы выделили 4 байта под указатель, ещё не значит, что выделили 32 байта под объект (или сколько он там у вас занимает) или 32*8 байт на массив объектов из 8 элементов.

Память выделяется динамически - (через "new", освобождается через "delete []" для массивов или "delete" для единичных объектов). Когда вы пишите "char * ptr;" вы создаёте указатель на объект(ы) типа char. Но вам ведь ещё сами объекты создать нужно, верно? "ptr = new char[256];" Когда они вам перестают быть нужны, удалите их: "delete [] ptr;". Так же хорошим тоном считается инициализировать указатели нулём и при удалении объектов, на которые они указывают, так же обнулять их.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.