Информатика. Общая информатика. Основы языка C++. Мамонова Т.Е. - 146 стр.

UptoLike

Составители: 

3) void*realloc (void *p, unsigned s) изменяет размер блока ранее
выделенной динамической до размера s байт, р адрес начала изменяе-
мого блока, при неудачном завершении возвращает NULL;
4) void *free (void *p) освобождает ранее выделенный участок
динамической памяти, р – адрес начала участка.
Пример 49
int *u=(int*)malloc(sizeof(int)); // в функцию
передается количество требуемой памяти в байтах, т.к. функция воз-
вращает значение типа void*, то его необходимо преобразовать к
типу указателя (int*).
free(u); //освобождение выделенной памяти
Операции с указателями
С указателями можно выполнять следующие операции:
1) разыменование (*);
2) присваивание;
3) арифметические операции (сложение с константой, вычитание,
инкремент ++, декремент --);
4) сравнение;
5) приведение типов.
Операция разыменования предназначена для получения значения
переменной или константы, адрес которой хранится в указателе. Если
указатель указывает на переменную, то это значение можно изменять,
также используя операцию разыменования.
Пример 50
int a; //переменная типа int
int*pa=new int; //указатель и выделение памяти
под динамическую переменную
*pa=10;//присвоили значение динамической пере-
менной, на которую указывает указатель
a=*pa; //присвоили значение переменной а
Присваивать значение указателям-константам запрещено.
Приведение типов. На одну и ту же область памяти могут ссылать-
ся указатели разного типа. Если применить к ним операцию разымено-
вания, то получатся разные результаты.
Пример 51
int a=123;
int*pi=&a;
char*pc=(char*)&a;
float *pf=(float*)&a;
146