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

Выделение памяти под массив структур - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Quick sort c++ http://www.cyberforum.ru/cpp-beginners/thread540443.html
Добрый день. Есть вопрос, как можно реализовать Quick sort с подсчётом перестановок. По условию задания у нас есть 10000 элементов. В первый раз сортирует с центра и выводит сколько было перестановок. Во второй раз с конца и выводит сколько было перестановок. В третьи раз с начало и выводит сколько было перестановок.
C++ как отслеживать Http трафик? как отслеживать и парсить траф? Можете обьяснить на словах http://www.cyberforum.ru/cpp-beginners/thread540405.html
C++ Информация о вызванной перегрузке функции
нужно в соответствии с замечанием изменить прилагаемый код : Сделать так, чтоб было видно, какая из перегруженных функций вызывалась. Напрмер функция дополнительно выводмиь строку типа "Результат вызова функции с целыми параметрами". #include <stdio.h> int isNegative(int val); int isNegative(double val); int main() { int a = 0; double b = 0;
C++ В одномерном массиве удалить промежуток элементов от максимального до минимального
В одномерном массиве удалить промежуток элементов от максимального до минимального
C++ Динамический массив http://www.cyberforum.ru/cpp-beginners/thread540391.html
Сформировать динамический двумерный массив, заполнить его случайными числами и вывести на печать. Добавить строки после каждой четной строки матрицы. #include <conio.h> #include <iostream.h> #include <stdlib.h> int main()
C++ Нужно найти ОШИБКУ в программе УСЛОВИЕ: Дан текст, состоящий не менее чем из пяти слов. Вывести на экран слова, которые имеют одинаковые окончания "ИЯ","ИСТ","ИКА". #include <iostream> #include <string.h> #include <stdio.h> using namespace std; void main () { setlocale(LC_ALL,"rus"); подробнее

Показать сообщение отдельно
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,511
06.04.2012, 13:07  [ТС]     Выделение памяти под массив структур
Цитата Сообщение от villu Посмотреть сообщение
а кто вообще научил так объекты копировать?
Жизнь научила, ничего больше не работает кроме этого же Сейчас покажу с malloc и с тупо построчным копированием.

Цитата Сообщение от villu Посмотреть сообщение
и почему вообще не использовать вектор, например.
Нельзя, это не с 0 написано, половина функций и все переменные уже были сразу назначены, а имена декларированы. Я могу лишь дописывать функции и переменные. Вообще это кусок программы, на деле это бд, отдельные места которой из-за ограничений на функции что уже были добавлены и то что нельзя менять ни параметры, ни тип возвращающихся значений выглядят вот так например:
C++
1
m_Cars[i]->usingCar(const_cast<CDriver*>(&(FindDriver(fname,sname))),right.m_Cars[i]->m_Log[j].m_Date);
Я это называю конструктор копирования или просто ужас. Но да это хоть работает, а вот описанный мной выше код работает не корректно же.

Цитата Сообщение от kazak Посмотреть сообщение
realloc можно вызывать, только если память вызывалась malloc/calloc.
Меняю конструктор по умолчанию заменяю выделение через new на выделение через malloc. Конструктор выглядит так:
C++
1
2
3
4
5
6
   CCar(const string& RZ)
   {
       m_RZ=RZ;
       m_LogNr=0;
       m_Log= (TLog*) malloc (sizeof(TLog)*10);///выделяю память под ДЕСЯТЬ элементов умышленно с запасом
   }
функция using car так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//проблемы появляются здесь так как здесь происходит утечка памяти
void CCar::usingCar(CDriver* who, const string& when)
{
    if(m_LogNr==0) //память уже была выделена конструктором для первого элемента
    {
        m_Log[0].m_Driver=who;
        m_Log[0].m_Date=when; //вот здесь при первом же вызове функции программа крашиться, видать криво выделил память malloc для строки типа string
 
        m_LogNr++;
        return;
    }
   //ничего не выделяю, у меня места и так под 10 элементов
 
    m_Log[m_LogNr].m_Date=when;
    m_Log[m_LogNr].m_Driver=who;
 
    m_LogNr++;
}
Как видите вновь ошибка ...
 
Текущее время: 15:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru