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

почему не работает? - C++

Восстановить пароль Регистрация
 
M@k7
 Аватар для M@k7
6 / 6 / 0
Регистрация: 17.10.2011
Сообщений: 165
13.02.2012, 23:02     почему не работает? #1
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
#include "stdafx.h"
#include<iostream>
 
struct item;
item *Insert(item *tree);
item *InOrder(item *tree);
 
struct item
{
 int data;
 item *left;
 item *right;
 item *(*f)(item *tree);
};
// item *(*f)(item *tree);
 
item *Insert(item *tree)
{
 int s =1;
 item *p;
 if(tree == NULL)
 {
  p = new item;
  p->data = s;
  p->left = NULL;
  p->right = NULL;
  tree = p;
 }
 else
 {
  p = tree;
  if(s < p->data)Insert(p->left); else
  if(s > p->data)Insert(p->right);
 }
 return tree;
}
 
item *InOrder(item *tree)
{
 if(tree->left != NULL)InOrder(tree->left);
 if(tree->right != NULL)InOrder(tree->right);
 return tree;
}
void main(void)
{
 item *root = NULL;
 root->f=Insert;            //<<<<  Вот здесь
 root=root->f(root);
 root->f=InOrder;          //<<<<  Вот здесь
 root=root->f(root);
 std::cout<<root->data;
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
13.02.2012, 23:11     почему не работает? #2
Может быть
C++
1
item *root = new item();
Как же вы хотите достучаться до полей объекта, которого не существует?
M@k7
 Аватар для M@k7
6 / 6 / 0
Регистрация: 17.10.2011
Сообщений: 165
13.02.2012, 23:16  [ТС]     почему не работает? #3
и куда ето вписать??????
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
13.02.2012, 23:19     почему не работает? #4
Вместо
C++
1
item *root = NULL;
нужно написать
C++
1
item *root = new item();
Потому что потом вы пишите
C++
1
root->f=Insert;
Т.е. пытаетесь получить доступ к полю объекта, которого не существует вовсе. Это неверно.
M@k7
 Аватар для M@k7
6 / 6 / 0
Регистрация: 17.10.2011
Сообщений: 165
13.02.2012, 23:23  [ТС]     почему не работает? #5
Врод так
Yandex
Объявления
13.02.2012, 23:23     почему не работает?
Ответ Создать тему
Опции темы

Текущее время: 06:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru