![]() |
|
Программирование >> Процедурные приложения
![]() Рис. 9.17. Заполнение ячек данными Как показано на рис. 9.18, перемещение блока сопровождается перемещением всех связанных с ним данных, что реализуется следующими строками программы: *pinewblock *(pinewblock + *(pinewblock + 2 **ppiresult a; 1) = **ppiresult b; ppiresult c; Поскольку указатель pinewblock содержит адрес первой ячейки блока, то для того чтобы обратиться к следующим ячейкам, необходимо воспользоваться уже знакомыми нам арифметическими операциями над указателями. При этом арифметическое выражение следует взять в скобки, чтобы первой была выполнена операция сложения, а затем применен оператор раскрытия указателя (*). ppire3ult a ![]() pinewblock pioldblock
![]()
Рис. 9.18. Создание и заполнение нового динамического блока ячек На рис. 9.19 показано, что произойдет после вызова функций free()и vassign() для переадресации указателей массива pivirtual arrayна ячейки нового блока. ![]() Рис. 9.19. Переадресация указателей массива pivirtual array Самое важное, что наглядно демонстрирует рис. 9.19, заключается в том, что указатели ppiresult a, ppiresult b и ppiresult c не изменились в ходе выполнения программы. Поэтому когда программа выводит на экран их значения, мы видим все ту же последовательность чисел 7, 10 и 15, хотя размещение соответствующих ячеек в памяти изменилось. Массивы строковых указателей Простейший способ управления массивом строк состоит в создании массива указателей на эти строки. Это гораздо проще, чем объявлять двухмерный массив символов. В следующей программе для отображения на экране трех разных сообщений об ошибках применяется массив указателей на строки. arraystr.c Эта программа на языке С с массивом указателей на демонстрирует строки. работу #include <ctype.h> #include <stdio.h> #define INUMBER OF ERRORS 3 char *pszarray[INUMBER OF ERRORS]
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |