ВУЗ:
Составители:
Рубрика:
void *realloc(void *blok, unsigned n); – изменяет размер блока ранее выделенной динамической памяти с
адресом начала blok до размера
n-байт;
void free(void *blok); – освобождает ранее выделенный блок динамической памяти.
В случае неудачи функции malloc, calloc и realloc возвращают значение NULL.
При определении указателя и он сам и его значение могут быть объявлены константами. Ближний к
имени указателя модификатор const говорит о постоянстве значения указателя. Такой указатель должен
получить значение при инициализации:
тип const *const имя_указателя = инициализатор;
Если же указать const перед операцией разыменования '*', то это говорит о постоянстве значения, на ко-
торое указывает указатель.
П р и м е р 9
void main (void)
{
char *const key = (char *) 0x 0417;
*key = 'Е';
}
В результате работы программы из примера 9 в операционных системах MS DOS и WINDOWS 9X
будут включены индикаторы Caps Lock, Num Lock и Scroll Lock на клавиатуре. При этом в программе
нельзя изменять значение указателя key.
В языке С указатели тесно связаны с базовыми типами данных. При организации доступа к памяти
с помощью операции разыменования указателя компьютеру необходима информация не только о раз-
мещении, но и о размерах используемого участка памяти. Эту информацию компьютер получает из ба-
зового типа указателя. В качестве типа может быть использован как простой, так и сложный тип данных
(массив, указатель, структура, объединение, созданный пользователем тип).
П р и м е р 10
#include <stdio.h>
void main()
{
long L = 0x12345678;
char *с = (char *) &L;
short *s = (short *) &L;
long *l = (long *) &L;
printf("*c = %x", (int) *c);
printf("\n*s = %x", *s);
printf("\n*l = %x", *l);
}
В результате работы этой программы на печать будут выведены следующие результаты:
*c =78
*s =5678
*l =12345678
Страницы
- « первая
- ‹ предыдущая
- …
- 19
- 20
- 21
- 22
- 23
- …
- следующая ›
- последняя »
