Как создать структуру, где будут поля с указателями на эту же структуру? - 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
и указывает, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д