Массив указателей на элементы структуры - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Сабж таков: есть структура
struct Struct1
, в ней есть элемент, допустим указатель на строковой литерал, обзовём его
 char * word
. Хочу создать массив указателей, ссылающихся на
struct -> word
, но не знаю как такой массив объявить. Прошу помочь советом.

Решение задачи: «Массив указателей на элементы структуры»

textual
Листинг программы
struct x {
    char *p;
    int n;
};
 
...
 
    struct x s;
    char str[] = "abcd";
    char **carr[10];
    int *narr[10];
 
    s.p = str;
    s.n = 1;
 
    carr[0] = &s.p;
    narr[0] = &s.n;

Объяснение кода листинга программы

В этом коде объявлена структура x, которая содержит два поля: p типа char* и n типа int. Затем объявлены массивы carr и narr как массивы указателей на char* и int* соответственно. И наконец, переменная s типа x инициализируется с указателем p на строку abcd и значением n равным 1. Код затем присваивает адрес поля p структуры s в carr[0] и адрес поля n структуры s в narr[0]. Это означает, что carr[0] и narr[0] теперь указывают на те же самые данные, что и s.p и s.n соответственно. Следует отметить, что этот код не полностью функционирует, так как он не инициализирует другие элементы массивов carr и narr, и не содержит кода для обработки этих массивов. Однако он демонстрирует основные концепции работы с указателями на структуры в C.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.071 из 5
Похожие ответы