Списки. Ошибка "недопустимый неполный тип" - C (СИ)
Формулировка задачи:
В 30-й строке ругается на второй Zv
Цель программы. Используя динамическую структуру список, подсчитать сумму отрицательных чисел в списке.
Листинг программы
- #define _CRT_SECURE_NO_WARNINGS
- #include <conio.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <ctype.h>
- #include <locale.h>
- #include <cstdio>
- #include <Windows.h>
- typedef struct zv
- {
- int mas;
- struct zv * next; // ссылка на следующий элемент списка
- } Zv;
- int main()
- {
- setlocale(LC_ALL, "Russian");
- Zv * P; // первый элемент списка
- Zv * t; //последний элемент списка
- int sym;
- int k = 0;
- printf("Ведите строку целых чисел, закончив её нулём\n");
- P = NULL;
- do
- {
- scanf("%d", &sym);
- t = (struct Zv *)malloc(sizeof(Zv));
- t->next = P; P = t;
- t->mas = sym;
- } while (sym != 0);
- t = P;
- while (t != 0)
- {
- if (t->mas % 2 == 0)
- {
- k++;
- }
- t = t->next;
- }
- printf("Количество чисел: %d", k);
- system("pause");
- return 0;
- }
Решение задачи: «Списки. Ошибка "недопустимый неполный тип"»
textual
Листинг программы
- t = (Zv*)malloc(sizeof(Zv)); // без struct
Объяснение кода листинга программы
- В коде выделяется память под переменную типа Zv с помощью функции malloc.
- Переменная t будет содержать указатель на выделенную память.
- В данном случае, структура Zv не объявлена, что может вызывать ошибку компиляции.
- Если структура Zv была объявлена до этого фрагмента кода, то ошибка
недопустимый неполный тип
может указывать на неправильное заполнение поля структуры. - Если структура Zv не была объявлена, то ошибка
недопустимый неполный тип
указывает на то, что компилятор не может определить размер структуры Zv, так как она не полностью определена. - Возможно, в коде пропущено объявление структуры Zv или ее полей.
- Возможно, в коде присутствует ошибка синтаксиса или другая ошибка, которая мешает компиляции.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д