Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
trum
0 / 0 / 0
Регистрация: 20.03.2012
Сообщений: 53
#1

Ошибка с malloc - C++

28.05.2012, 21:02. Просмотров 658. Ответов 4
Метки нет (Все метки)

Задание:
Написать программу, содержащую процедуры формирования и просмотра списка и подпрограмму проверки наличия в списке заданного числа.
КОД


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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
struct tnode
{
   int data;
   struct tnode *next;
};
typedef struct tnode *pnode;
 
int main()
{
int n,i,k=0;
pnode start, p1, p2 = NULL;
printf(" n1(Kol elements in first Turn) = ");
scanf("%d",&n);
printf("\n");
 
p2 = malloc(sizeof(struct tnode));
p2->next=NULL;
p1=p2;
start=p1;
printf("Turn(0)== ");
scanf("%d",&p2->data);
 
for(i = 1; i < n; i++)
{
   p2->next = malloc(sizeof(struct tnode));
   p2=p2->next;
   p2->next=NULL;
   printf("Turn(%d)== ",i);
   scanf("%d",&p2->data);
}
printf("\n");
start=p1;
while (p1!=NULL)
{
   printf("%d-->",p1->data);
   p1=p1->next;
}
printf("NULL\n");
printf("Enter K =");
scanf("%d",&k);
p1=start;
  while(p1!=NULL)
{
if(p1->data == k)
{
printf("!!Complete!!");
_getch();
}
p1=p1->next;
}
printf("!!ErroRR!!");
_getch();
}
Выбивает ошибку именно сдесь:
C++
1
2
3
p2 = malloc(sizeof(struct tnode));
и
p2->next = malloc(sizeof(struct tnode));
Ошибка:
error C2440: =: невозможно преобразовать "void *" в "tnode *"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2012, 21:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка с malloc (C++):

Ошибка при выделении памяти с помощью malloc - C++
Помогите выдает ошибку в рядочке :&quot;Ar = ( far *)malloc(size*sizeof(int));&quot; полный текст програмы: #include &quot;stdafx.h&quot; using namespace...

new, malloc, - C++
Добрый день. При роботе с дин. памяттю в конец выделяемой памяти добавляеться какойто бред, чтото топа &quot;&lt;&lt;&lt;ЮЮЮээээ&quot;. Почему так...

new на malloc - C++
Измените выделение памяти на C - malloc,и почему у меня не открывает текстовый файл? #include &quot;stdafx.h&quot; #include &lt;string.h&gt; ...

malloc в С++ - C++
Подскажите пожалуйста как в данной программе выделить динамическую память с помощью malloc для объекта #include &lt;iostream&gt; ...

Malloc vs new - C++
Здравствуйте. Вникаю в ручное управление памятью. Абзац из книги &quot;C++ для профессионалов&quot; не совпадает с моим представлением...

malloc vs new - C++
Доброго времени суток. Когда я для выделения памяти пользовался malloc/calloc и освобождал с помощью free, у меня вылетала ошибка: ...

4
instagib
122 / 85 / 3
Регистрация: 14.02.2011
Сообщений: 340
28.05.2012, 21:08 #2
trum, функция должна возвращать значение,
попробуй так:
C++
1
p2 = (tnode*)malloc(sizeof(struct tnode));
Добавлено через 2 минуты
Цитата Сообщение от trum Посмотреть сообщение
p2->next = malloc(sizeof(struct tnode));
аналогично и тут:
C++
1
p2->next =(tnode*)malloc(sizeof(struct tnode));
1
Martovskij
99 / 39 / 7
Регистрация: 30.01.2011
Сообщений: 129
Завершенные тесты: 4
28.05.2012, 21:08 #3
malloc возвращает указатель типа void*, а ты пытаешься его присвоить указателю типа tnode.
явное приведение типов в помосч.
1
trum
0 / 0 / 0
Регистрация: 20.03.2012
Сообщений: 53
28.05.2012, 21:12  [ТС] #4
спасибо огромное! все работает)
0
instagib
122 / 85 / 3
Регистрация: 14.02.2011
Сообщений: 340
28.05.2012, 21:16 #5
trum,

Не по теме:

жми кнопку спасибо)

1
28.05.2012, 21:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2012, 21:16
Привет! Вот еще темы с ответами:

New и malloc - C++
Если смотреть на выделение памяти для арифметических типов уступает ли функций new malloc'у в скорости? Если да, то насколько это критично?

malloc() - C++
4to takoe malloc(), za4em nam ono nujno? pomogite=)))))))

new vs malloc - C++
Чем new безопаснее(или лучше?) malloc?

new/malloc align - C++
Обращают ли внимание new/malloc на установленый align для структуры? Так, например: struct __declspec(align(32)) Circle { float...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru