Как создать структуру, где будут поля с указателями на эту же структуру? - C (СИ)
Формулировка задачи:
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- typedef
- struct DoubleQueue
- {
- queue* ar;
- queue* al;
- int data;
- } queue;
- int main()
- {
- int x;
- int n = 3;
- queue b,e,al;
- }
Листинг программы
- 1>------ Построение начато: проект: Queue, Конфигурация: Debug Win32 ------
- 1> Main.c
- 1>c:\users\life\documents\visual studio 2012\projects\praktika\praktika\main.c(7): error C2016: В языке C необходимо, чтобы в struct или union был по крайней мере один элемент
- 1>c:\users\life\documents\visual studio 2012\projects\Queue\Queue\main.c(7): error C2061: синтаксическая ошибка: идентификатор "queue"
- 1>c:\users\life\documents\visual studio 2012\projects\Queue\Queue\main.c(8): error C2143: синтаксическая ошибка: отсутствие "{" перед "*"
- 1>c:\users\life\documents\visual studio 2012\projects\Queue\Queue\main.c(10): error C2059: синтаксическая ошибка: }
- 1>c:\users\life\documents\visual studio 2012\projects\Queue\Queue\main.c(16): error C2065: queue: необъявленный идентификатор
- 1>c:\users\life\documents\visual studio 2012\projects\Queue\Queue\main.c(16): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "b"
- 1>c:\users\life\documents\visual studio 2012\projects\Queue\Queue\main.c(16): error C2065: b: необъявленный идентификатор
- 1>c:\users\life\documents\visual studio 2012\projects\Queue\Queue\main.c(16): error C2065: e: необъявленный идентификатор
- ========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Решение задачи: «Как создать структуру, где будут поля с указателями на эту же структуру?»
textual
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct DoubleQueue {
- struct DoubleQueue* ar;
- struct DoubleQueue* al;
- int data;
- } queue;
- int main() {
- int x;
- int n = 3;
- queue b, e, al;
- return 0;
- }
Объяснение кода листинга программы
- #include
— подключает файл стандартного ввода/вывода, что позволяет использовать функции для работы с консолью - #include
— подключает файл стандартной библиотеки, который содержит функции для работы с памятью - typedef struct DoubleQueue { — определяет новый тип данных
DoubleQueue
, который будет использоваться для создания структур - *struct DoubleQueue ar;* — объявляет поле структуры
ar
типа `struct DoubleQueue, которое будет содержать указатель на структуру
DoubleQueue` - *struct DoubleQueue al;* — объявляет поле структуры
al
типа `struct DoubleQueue, которое будет содержать указатель на структуру
DoubleQueue` - int data; — объявляет поле структуры
data
типаint
, которое будет содержать целочисленное значение - } queue; — завершает определение структуры
DoubleQueue
- int main() { — определяет функцию
main
, которая является точкой входа в программу - int x; — объявляет переменную
x
типаint
- int n = 3; — объявляет переменную
n
типаint
и инициализирует её значением 3 - queue b, e, al; — объявляет три переменные типа
queue
—b
,e
иal
- return 0; — завершает функцию
main
и указывает, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д