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

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

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

Не хочет передавать ДМУ функции!..:( - C++

11.06.2011, 15:07. Просмотров 505. Ответов 0
Метки нет (Все метки)

Отладчик ругается при вызове функции ссылаясь на то что МУ присвоен неправильный указатель... не получается решить данную проблему. Это часть курсовой работы и идею алгоритма менять нельзя. Уже час парюсь ничего не добился путного... помогите
частые выводы - это ручная отладка, там где "-ок" программа прошла данный отрезок без нареканий...

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
#include <stdio.h>
#include <string.h>
int N=4;
struct tree{
    int n;      // Значений в поддереве
    char **s; 
    tree *l,*r;
    void creat(){r=l=NULL; n=NULL; s=new char*[N]; for(int i=0;i<N;i++) s[i]="null"; } //создание пустой вершины
void create(char** s0,int n0){ //создание вершины со значением - не хочет принимать МУ... отладчик ругается на неправильный указатель
    r->l=NULL;
    n=n0;
    s=s0;
}};
void exteud(tree *p) //функция при переполнении МУ на строки  в концевой вершине порождает 2 потомка и делит МУ на 2 части
{
    for(int i=0;i<N;i++)
        printf_s("%s\t",p->s[i]);// -ок
    p->l=new tree;
    p->l->create(p->s,p->n); //перенос значений вершины в потомка  <------вот тут неправильно передает МУ
    p->r=new tree;
    p->r->creat();//создание пустого правого потомка
    p->l->n=p->r->n=N/2;//разделить на 2 части 
    for(int i=0;i<N/2;i++)
        p->r->s[i]=p->l->s[i+N/2]; //переписывание половины в правую концевую
    }
void insert(tree *p,char *c){ //включение строки
        if(p->l==NULL) //конечная
        {
            printf("%s\t",c);// -ок
            char *ss;
            ss=new char[strlen(c)];
            strcpy(ss,c);
            printf("%s\t",ss);//-ок
            p->s[p->n]=ss;//присваиваем МУ
            printf_s("%s\t", p->s[p->n]);// -ок
            p->n++;
            if(p->n==N)
            exteud(p); //проверка на переполнение
            return;
        }
        p->n++;
            insert(p->l,c);
            insert(p->r,c);
    }
void main(){
        tree *ph=new tree;
        char c[50];
        int rt;
        int m;
        int lvl=0;
        ph->creat();
        FILE *fd=fopen("asd.txt","r");
        while(!feof(fd))
        {
            fscanf(fd,"%s",c);
            insert(ph,c);   
        }
}


Добавлено через 16 часов 48 минут
Уже второй день мучаюсь... все делаю как в учебнике сказано, как показано в примерах, но ничего не выходит =(
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2011, 15:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не хочет передавать ДМУ функции!..:( (C++):

Можно передавать и вызывать из функции в DLL динамические массивы? - C++
Мне нужно создать перегруженные функции удаления элемента из динамического массива с заданным ключом!Можно передавать в функцию и вызывать...

Что оптимальнее: передавать матрицу как аргумент, или же формировать её внутри функции? - C++
Добрый вечер, уважаемые форумчане! Я столкнулась с таким вопросом в процессе оптимизации моей программы: что оптимальнее, передавать...

программа не хочет видеть код функции - C++
Всем добрый вечер. Пишу на wxDev-C++. Пишу обычную не сложную игру. Столкнулся с проблемой в меню, есть функция в мэйне она...

Наследование vs Композиция vs Агрегация: что лучше выбрать? Как лучше передавать объекты в функции? - C++
Добрый день!! Дело вот в чём, я хочу создать класс, внутри которого будут созданы объекты других классов (реализованных в некоторой...

Изменить программу вывода функции так, чтобы можно было передавать функции типа double - C#
Помогите разобраться. Изменить программу вывода функции так, чтобы можно было передавать функции типа double(double,double)....

Глючит страшно курсор: хочет сам все выделяет, хочет удаляет часть текста, хочет прыгает где ему вздумаеться - Периферийные устройства
Подскажите как быть...глючит страшно курсор: хочет сам все выделяет, хочет удаляет часть текста, хочет прыгает где ему вздумаеться(у меня...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.06.2011, 15:07
Привет! Вот еще темы с ответами:

Передавать в функции имя таблицы (Оптимизация кода) - C#
Есть класс class A { public Int32 IDGeneration() { ... var _tickers = from tickers...

Передавать при создании класса, переменную - аргумент функции - C++ Qt
1. Вопрос Конструктор класса - метод: CustomGLWidget::CustomGLWidget(QWidget *parent):QGLWidget(parent) { //Initialize...

Как передавать в качестве аргумента функции экземпляр пользовательского класса? - VBA
Товарищи, подскажите пожалуйста, возможно ли (и как, если возможно) на VBA (Exel 2003) реализовать следующую ситуацию: 1. Существуют...

Что лучше передавать из функции в функцию — массив переменных или переменные по одной? - C (СИ)
Что лучше передавать из функции в функцию - массив переменных или переменные по одной?


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

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

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