Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нужно реализовать ввод любого нелинейного уравнения в программу Второй раз уже спрашиваю, весь интернет перерыл, ни хрена нету по теме. Надо чтобы пользователь мог ввести в программу любое нелинейное уравнение начиная от обычных квадратов x заканчивая... https://www.cyberforum.ru/ cpp-beginners/ thread881158.html C++ Указатели
Можно ли как-то избавиться от скобочек вокруг (*temp), как тут вообще переписать это? Item * ReadItems() { Item *head = NULL, **temp; ifstream IN(itemsName); temp = &head; char buf;...
C++ Оператор суммирования (классы, перегрузка операторов) #include <iostream> class mat { public: mat() { var = 0; } mat(int a) { var = a; } ~mat() { } void set(int b) { var = b; } int get() const { return var; } https://www.cyberforum.ru/ cpp-beginners/ thread881138.html C++ Оптимизация функции двух переменных https://www.cyberforum.ru/ cpp-beginners/ thread881133.html
Доброго времени суток! Помогите пожалуйста решить задачу: Дана функция -2*x*x+3*x*y-5*y*y+3*y, нужно её оптимизировать Я вот вроде как методом градиента делаю, но программа зацикливается(читал -...
Зацикливание при вводе из файла C++
требуется ввести из файла в вектор данные типа float. программа зацикливается при выводе целой части вещественного числа. #include "stdafx.h" #include <iostream> #include <fstream> #include...
C++ вставить в двумерный массив операцию подсчета (+) и (-) элементов массив : #include <iostream> #include <iomanip> #include <algorithm> #include <ctime> #include <random> #include <stdio.h> int main() { https://www.cyberforum.ru/ cpp-beginners/ thread881124.html
C++ Вычислить разницу элементов массива, что расположены между первым отрицательным та вторым положительным элементами https://www.cyberforum.ru/ cpp-beginners/ thread881115.html
Всем привет,ребят подкорректируйте пожалуйста ф-цию,то работает не правильно :cry: Вот задание: Вычислить разницу элементов массива, что расположены между первым отрицательным та вторым...
C++ Вывести координаты вершин трапеции,в которой длина радиуса окружности,описанной вокруг нее,является наименьшей
На плоскости задано множество точек,которые могут сделать равнобедренную трапецию.Вывести координаты вершин трапеции,в которой длина радиуса окружности,описанной вокруг нее,является наименьшей .
C++ Вывести матрицу Требуется вывести матрицу изображенную на рисунке. Причем не просто инициализировать, а сгенерировать. Помогите, люди добрые) https://www.cyberforum.ru/ cpp-beginners/ thread881070.html C++ Программы для создания блок схем Какими программами для создания блок-схем Вы пользуетесь ? Существуют ли программы для автоматического создания блок-схемы для C++ ? https://www.cyberforum.ru/ cpp-beginners/ thread881066.html
Не работает код (программа считывает из файла строку, убирает лишние пробелы и записывает в другой файл строку, словами наоборот) C++
#include "stdafx.h" #include <iostream> #include <fstream> #include <string> #include <algorithm> using namespace std; string RemoveBlanks(string c) { string a; for(int...
C++ Как зафиксировать строку (кнопку) в меню программы (Visual Studio)? https://www.cyberforum.ru/ cpp-beginners/ thread881057.html
Дорогие форумчане, подскажите пожалуйста, как сделать так, чтобы "Закрыть" не выбералась вообще? Я строку "Закрыть" погасил, но чтоб она не выбералась хз че делать... Возможно вопрос очень...
DeadMonk
27.05.2013, 22:08 0

Всякие ошибки видел , но такие ( - C++ - Ответ 4626607

27.05.2013, 22:08. Показов 418. Ответов 3
Метки (Все метки)

Ответ

кода уж слишком много...

вот что я имею по данному участку:

проблемная функция(отключение которой решает проблему) -
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void MAPEDmenu_init()
{
#ifdef _DEBUG
    printf("[~][->][MAPEDmenu_init]\n");
#endif
 
menu_start.Init();
 
menu_start.AddElement(IF_ELID_SEL_TXT,0,"Create new map",0,0,0);
menu_start.AddElement(IF_ELID_SEL_TXT,0,"Load exsisting map",0,0,0);
menu_start.AddElement(IF_ELID_SEL_TXT,0,"Exit",0,0,0);
 
//menu_start.Activate(1);
 
#ifdef _DEBUG
    printf("[~][<-][MAPEDmenu_init]\n");
#endif
}
теперь Iface_Textmenu::AddElement:
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
void Iface_Textmenu::AddElement(unsigned char type,unsigned char size,
                                char* name,Iface_Textmenu* menu,
                                unsigned short rx,unsigned short ry)
{
 
    printf("[1]\n");
    
    Iface_TM_Element* te = new Iface_TM_Element[1];
 
    printf("[2]\n");
 
    
    te->on_hit = menu;
    te->size = size;
    te->slide_pos = 0;
    te->type = type;
    te->rx=rx;
    te->ry=ry;
    te->value = 0;
 
    //free this (TODO)
    if(name == 0)
    {
        if(size > 0)
        {
        te->value = new char[size];
        memset(te->value,0,size);
        }
    }
    else
    {
        te->size = strlen(name) + 1;
        te->value = new char[size];
        strcpy(te->value,name);
        te->value[size] = 0;
    }
 
    
[!!!!!!]this->lst_lbl.NewLink(te); //как выяснилось дальше отключение данной строки уберает вылет программы
    this->lst_lbl.ldata->last->i->command = this->lst_lbl.ldata->total;
    
    //FIRST ELEMENT
    if(this->sel_lbl == 0)
    {
        if((type & 0x0f) != IF_ELID_STA_TXT) //non static - selectable
        {
            this->sel_lbl = this->lst_lbl.ldata->last;
        }
    }
};
реализация this->lst_lbl.NewLink(te); (добавление нового элемента в лист не создавая экземпляр класса T)
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
TList<T>* NewLink(T* t)
{
 
    TList<T>* tl = 0;
    tl = new TList<T>[1]; 
    
    tl->next=0;
    tl->prev=0;
    tl->ldata=this->ldata; 
 
    tl->i=t; // тут не происходит выделение под экземпляр - только присвоение в данном случае переменной "te".
    
    if(this->ldata->total == 0) // 1st item?
    {
 
        tl->ldata->first=tl;
        tl->ldata->last=tl;
    }
    else
    {
        tl->prev=this->ldata->last;
        this->ldata->last->next=tl;
        this->ldata->last=tl;
    }
 
    ++this->ldata->total;
 
    return tl;
}
Добавлено через 18 минут
всем спасибо разобрался!

ошибка вот где:
создается экземпляр класса Iface_TM_Element[1] с именем te;
далее

C++
1
2
3
4
te->size = strlen(name) + 1;
        te->value = new char[size];
        strcpy(te->value,name);
        te->value[size] = 0;
te->value[size] выходит за границы new char[size] и происходит нарушение в памяти;
исправил new char[size] на new char[te->size];

Вернуться к обсуждению:
Всякие ошибки видел , но такие ( C++
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.05.2013, 22:08
Готовые ответы и решения:

Как исправить такие ошибки
Как исправить такие ошибки? cc1plus: warnings being treated as errors Line 3: warning: ignoring...

Все время устанавливаются нежелательные ПО, такие как Амиго, китайские программы и всякие ненужные ПО
Как то раз я скачал программу CPU Conrol, установил и заметил, что установились такие программы,...

Не создаются точки восстановления и всякие ошибки ЖД
Здравствуйте. Такая ситуация. Windows 7 x64. Установлены 2 диска, каждый поделён на два раздела. ...

Всякие дисплеи HD44780 и всякие АТмеги. Напоминалка.
Здравствуйте, господа! ВНЕЗАПНО обнаружил, что при очередной возне с каким-нибудь будущим...

3
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.05.2013, 22:08
Помогаю со студенческими работами здесь

Windows 7 64 bit после системного обновления выходят всякие ошибки?
Привет всем: после системного обновления стало жутко тормозить, долгая загрузка, не удалось...

Возможно ли отключить отображение компьютера в локальной сети? Чтобы комп не видел сам себя, а остальных видел
Локалка на десяток компов, пользователи — классическая бухгалтерия. На каждом компе есть...

Выдает такие ошибки
Помогите пожалуйста. Хз почему так. До 14 числа мне нужно с этим разобраться

Из-за чего такие ошибки?
Запускается...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru