Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/68: Рейтинг темы: голосов - 68, средняя оценка - 4.50
2 / 2 / 0
Регистрация: 07.10.2013
Сообщений: 14

Ошибка с alloc.h

12.10.2013, 20:25. Показов 12780. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программа из методички по Си
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <stdio.h>
#include <conio.h>
#include <alloc.h>
#include <stdlib.h> //изначально не было в проге, ниже объяснил почему засунул
 
struct spis
{char data[20];
  struct spis *next;};
struct spis * create(void); //прототип функции создания списка (возвращает адрес его головы)
void list(spis *head); // прототип функции просмотра списка
struct spis *head; // глобальная переменная, адрес головы списка
main()
{
  head= create();
  list(head);
  free(head);
}
struct spis * create(void)
{spis *p, *pred; char c;
// pred – указатель на предыдущую структуру
head=pred=p=(spis *)malloc(sizeof(spis)); //выделяем память для первой записи
printf(" фамилия: ");
scanf("%s", p->data);
do { p=(spis *)malloc(sizeof(spis));
  printf("\n фамилия: ");
  scanf("%s", p->data);
  pred->next=p; //ссылка из предыдущей записи на текущую
  pred=p; // сохранение адреса текущей записи
  printf(" Закончить? y/n ");
  c=getch();
} while (c!='y');
p->next=NULL;
return head;
}
void list(spis *head)
{spis *p;
p=head;
while (p!=NULL) // пока не конец списка
{printf("\n фамилия: %s",p->data);
  p=p->next; // продвижение по списку
}
getch();
}
Нагуглил такую тему, что можно вместо alloc.h использовать stdlib.h. Не исправило положение.
Если "включить" alloc.h, то выдает |3|fatal error: alloc.h: No such file or directory
Если не включать, то выдает |10|error: unknown type name 'spis'| на строке
C
1
void list(spis *head);
Нужна помощь заставить все это дело компилится.
P.S. Собственно саму библиотечку alloc.h нагуглить не смог
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.10.2013, 20:25
Ответы с готовыми решениями:

Alloc в процедуре
Здравствуйте. Нужно создать группу функций с аллокациями. К примеру: struct t *talloc (void) { return (struct t*) malloc (sizeof...

Библиотека <alloc.h>
Здравствуйте друзья программисты! Я не давно начал изучать Visual C++ и у меня сразу возник вопрос по поводу библиотеки...

alloc init
В начале изучения obj-c возник такой вопрос в чем будет различие между такой записью: NSDate *now = ; и такой записью: NSDate *now...

7
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
12.10.2013, 20:30
Цитата Сообщение от jinatar Посмотреть сообщение
error: alloc.h: No such file or directory
Как ты думаешь, что написано выше?
C
1
void list( struct spis *head );
0
202 / 200 / 65
Регистрация: 06.10.2013
Сообщений: 552
12.10.2013, 20:34
Когда вы используете несуществующий alloc.h, компиллятор просто не доходит до анализа структуры, вот и выдает совсем другую ошибку.
Объявите вашу структуру таким образом:

C
1
2
3
4
5
typedef struct
{
    char data[20];
    struct spis *next;
} spis;
1
2 / 2 / 0
Регистрация: 07.10.2013
Сообщений: 14
12.10.2013, 20:51  [ТС]
XZentus, спасибо.
castaway, я знаю что там написано. Я спрашивал что с этим делать.

Но все же для моего курсовика нужен двусвязный список...снова берем пример из методички, переписываем объявление структуры на правильно...но выдает ошибки
|39|error: dereferencing pointer to incomplete type|
Ума не приложу что может быть неправильно тут, но видимо опять какой то непорядок связанный с alloc.h
Помогите пожалуйста и с этим примером, что бы хоть начать кодить по правильному примеру
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
typedef struct
{char data[20];
  struct spis *v1; // v1 – указатель на предыдущую структуру
  struct spis *v2; // v2 – указатель на последующую структуру
} spis;
void create(void); // создание
void list(spis *); // просмотр
void del(void); // удаление
struct spis *head,*tail; // указатели на начало и конец списка
main()
{
  clrscr();
  create();
  list(head); // просмотр с начала списка
  list(tail); // просмотр с конца списка
del();
list(head);
free(head);
}
void create(void)
{spis *p,*pred;
  pred=NULL;
  do { p=(spis *)malloc(sizeof(spis));
    printf("Фамилия: "); gets(p->data);
    p->v1=pred;
    if (pred != NULL)
      pred->v2=p;
    else
      head=p;
    pred=p;
    puts(" Закончить - <esc>");
}
while (getch()!=27);
  tail=p;
  tail->v2=NULL;
}
void list(spis *p)
{if (p==head)
  while (p != NULL)
    {puts(p->data);
      p=p->v2;
    }
   else if (p==tail)
  while ( p!= NULL)
  {puts(p->data);
    p=p->v1;
  }
  else
    puts("Неверный адрес ");
    getch();
  }
void del(void)
{spis *p,*temp;char f[20]; // f[20] – Строка для удаляемой фамилии
  clrscr();
  printf("Фамилия: ");gets(f);
  p=head;
  while (p!=NULL)
    {if (strcmp((p->data),f)==0) // если найдена заданная фамилия
    {if (p==head) // если найденная запись - первая
        {head=p->v2;
          head->v1=NULL;
          free(p);
          p=head;
        }
       else if (p==tail) // если найденная запись - последняя
      {tail=p->v1;
        tail->v2=NULL;
        free(p);
        p=tail;
      }
      else // удаление из средины списка
      {p->v2->v1=p->v1;
        p->v1->v2=p->v2;
        temp=p;
        p=p->v2;
        free(temp);
      }
    }
else // если заданная фамилия не найдена – продвигаемся по списку
p=p->v2;
}
}
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
12.10.2013, 20:52
Цитата Сообщение от jinatar Посмотреть сообщение
castaway, я знаю что там написано. Я спрашивал что с этим делать.
Очевидно что не подключать файл alloc.h. К чему тогда был этот вопрос?
0
2 / 2 / 0
Регистрация: 07.10.2013
Сообщений: 14
12.10.2013, 20:57  [ТС]
Цитата Сообщение от castaway Посмотреть сообщение
Очевидно что не подключать файл alloc.h. К чему тогда был этот вопрос?
Как объявить структуру, если не подключать alloc.h.
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
12.10.2013, 20:59
Цитата Сообщение от jinatar Посмотреть сообщение
Если "включить" alloc.h, то выдает |3|fatal error: alloc.h: No such file or directory
Если не включать, то выдает |10|error: unknown type name 'spis'| на строке
Давай поставим вопрос по-другому.. Зачем ты описывал проблему с alloc.h если знал что проблема в описании структуры?
0
2 / 2 / 0
Регистрация: 07.10.2013
Сообщений: 14
12.10.2013, 21:12  [ТС]
Цитата Сообщение от castaway Посмотреть сообщение
Давай поставим вопрос по-другому.. Зачем ты описывал проблему с alloc.h если знал что проблема в описании структуры?
Изначально проблема была в том что я не мог найти alloc.h для того что бы скачать и подключить. Уже потом начал сомневаться описании структуры.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.10.2013, 21:12
Помогаю со студенческими работами здесь

Помогите отладить программу. Can't find include file <alloc>.
Доброго времени суток,вобщем нужно сделать так,чтобы она заработала.Я запутался в ошибках.Помогите ___________ (Еще почему выскакивает...

Std bad alloc при чтении файла более 1 Гб на 64-битном компиляторе
Использую Qt 5.6.1 и MinGW64. Комплект проверен и работает в другом оконном приложении с большими файлами. Создаю консольное приложение,...

IIS- asp ошибка: HTTP 500.100 - Внутренняя ошибка сервера - ошибка ASP Internet Information Services
Привет! Конфигурация win2000pro sp2, стандартный IIS, IE 5. При попытке обратиться к сценарию(asp) получаю ошибку: &lt;пропуск&gt;...

Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове метода контекста (ПрочитатьИзменения): Ошибка записи!
Доброго всем времени суток! подскажи пожалуйста как исправить ошибку: Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru