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

Проблемы при работе с динамическим распределением памяти - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Два отрезка http://www.cyberforum.ru/cpp-beginners/thread336371.html
Добрый вечер. Напишите пожалуйста код программы на Си(не С++). Даны координаты двух отрезков х1,у1 и х2,у2, нужно найти точку пересечения этих отрезков. Как её решить я знаю, а вот как написать саму программу не знаю. Для нахождения пересечения надо составить два уравнения (x-x1)/(x2-x1)=(y-y1)/(y2-y1) и (x-x3)/(x4-x3)=(y-y3)/(y4-y3), потом найти х и у, так как прямые пересекаются, то у них...
C++ Обращение к объекту с помощью перегруженной операции У меня есть перегруженная операция (), возвращающая rvalue int Array::operator()( int a, int b ) const { if ( a < 0 || b < 0 || a >= row || b >= column ) { cerr << "\nError: one of subscriptes is out of range\n"; exit( 1 ); } else http://www.cyberforum.ru/cpp-beginners/thread336356.html
C++ Рандом с плавающей точкой, как?
Здравствуйте, как реализовать rand() или другой рандом с плавающей точкой, т.е. например чтобы он мне выводил число от 1.0 до 2.5?
Выход из программы и самопроизвольное выполнение пункта C++
При запуске программы открывается меню. Если выбрать игра, то все в норме. Если выбрать помощь, то открывается помощь и сразу в след за ней открывается игра( как так?), если выбрать третий пункт, то выводится сообщение из третьего пункта, а затем открывается игра( почему?). Почему игра открывается сама по себе всегда? Как сделать выход из программы, то есть при нажатии "3", чтобы cmd окно...
C++ Проверка на цифру http://www.cyberforum.ru/cpp-beginners/thread336311.html
Написал относительно простую консольную игру. При запуске открывается меню, и там 3 пункта. Если человек вводит "4", то появляется сообщение об ошибке( это я смог реализовать), но если ввести любой другой символ( кроме цифры), например любую букву, то программа переходит в бесконечный цикл, и программа начинает выдавать текст, который выдавать она не должна. Как сделать проверку что это именно...
C++ Помогите понять задачу в теории Не могу понять как должна и что считать задача,помогите. Дана квадратная матрица порядка n. Получить вектор Аb, где b - вектор, элементы которого вычисляются по формуле b i = 1/i^2+2 , если i- четное b i = 1/i в противном случае (i=1,..., n) подробнее

Показать сообщение отдельно
mutari
0 / 0 / 0
Регистрация: 26.07.2011
Сообщений: 8
26.07.2011, 22:30  [ТС]     Проблемы при работе с динамическим распределением памяти
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
void tau(char x1[64])
{
        char* zero;
        char    buf_t[64];
        memset(buf_t,0,16);
    int int_x1_10 = 0;
        int v=1;
    for(int num=15; num>=0; num--)
    {
        if(x1[num]=='1')
            int_x1_10+=v;
        v*=2 ;
    }
    int_x1_10++;
    itoa(int_x1_10,buf_t,2);
        
    int temp = strlen(buf_t) ;
    int len = 15-temp;
    zero = new char [len+1];
    memset(zero,0,len + 1);
    zero[len+1] = '\0';
    int i = 0;
    for( i = 0;i<=len; i++)
        *(zero+i) = '0';
    strcat(zero,buf_t);
    delete []zero;
}
Вот полностью код моей функции, с убранными выводами и вызовами других функций.
Ошибку выдаёт такую:
ОС Windows инициировала точку останова в Test_c.exe.

Это может быть вызвано повреждением кучи и указывает на ошибку в Test_c.exe или в одной из загруженных им DLL.

Возможной причиной так же может быть нажатие пользователем клавиши F12, когда фокус принадлежит Test_c.exe

Выведенное на экран окно содержит дополнительные данные для диагностики ошибки
В окне кнопки "Прервать", "Продолжить" и "Отмена"(неактивная).

Причём, как я только что заметил - Если два раза нажать "Продолжить", то программа выполняется до конца с правильным результатом.
Когда закомментировал строчку delete []zero; - выполнилась без ошибок.
 
Текущее время: 17:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru