Форум программистов, компьютерный форум 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

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

26.07.2011, 19:38. Просмотров 864. Ответов 16
Метки (Все метки)

Здравствуйте! Возникла проблема при использовании динамической распределении памяти.
Вот код:
C++
1
2
3
4
5
6
7
8
9
10
char* zero;
char buf[64];
memset(buf_t,0,16);
temp = strlen(buf_t) ;
int len = 15-temp;
zero = new char [len];
memset(zero,0,sizeof(zero));
for( int i = 0; i <= len; i++)
    *(zero+i) = '0';
strcat(zero,buf_t);
Это отрывок программы. В buf_t содержится двоичное число, максимально состоящее из 16 разрядов. Суть функции в том, чтобы посмотреть сколько разрядов числа в buf_t и дописать с начала нулей, добив до 16 разрядов. Но вот после цикла в массиве zero содержится примерно следующее - "000000000000«««««««««««««««юоюою". Причём кол-во нулей сначала меня устраивает. Меня не устраивает то, что записано после них. Почему вообще столько ячеек в массиве, если в данном примере переменная temp = 4, а след. длина len = 11?


И ещё вопрос сюда же - в конце функции написал delete []zero; . Когда доходит до этой строчки выводит ошибку
ОС Windows инициировала точку останова в Test_c.exe.

Это может быть вызвано повреждением кучи и указывает на ошибку в Test_c.exe или в одной из загруженных им DLL.
Что я делаю не так? Заранее спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru