ВУЗ:
Составители:
Рубрика:
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
Страницы
- « первая
- ‹ предыдущая
- …
- 144
- 145
- 146
- 147
- 148
- …
- следующая ›
- последняя »
