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