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

Добавление строк в Вектор - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ подскажите с using namespace http://www.cyberforum.ru/cpp-beginners/thread939141.html
все что ниже написано - это части класса myclass struct marked_area { long double L; int t; int num; // кол-во выбранных уч-ов }; есть такая штука marked_area *MA; есть ф-ция void myclass::area_writing( int ii, int jj )
C++ Многопоточность Всем привет, заметил в одном проекте подобный код: struct Counter { int i; } #define g_counter ACE_Singleton< Counter, ACE_Thread_Mutex >::instance() // Из нескольких потоков http://www.cyberforum.ru/cpp-beginners/thread939134.html
Multimap зацикливается C++
Всем добрый вечер, Помогите, пожалуйста разобраться с зацикленным "Not found". Поиск по названию блюда происходит нормально, а вот если ввести блюдо, которого нет - выводит миллион раз. Поиск осуществляется по значению в multimap. void Menu::SearchMenu(string dish) { multimap<Meal, Dish>::iterator it; cout<<"Search"<<" \""<<dish<<"\" "; for (it=MyMenu.begin();...
C++ Как узнать размер массива в динамической памяти?
Добрый вечер еще раз! Напишите пожалуйста как можно узнать истинный размер массива, находящегося в динамической памяти, созданными при помощи malloc или calloc. Т.к. если выделить константный размер массива в динамической памяти (например char * ptr = (char*)calloc(10,1) и заполнить его 8 символами, то функция strlen(ptr) выдаст нам 8, в то время как массив имеет размер в 10 бит, а функция...
C++ Ввод строки в динамический массив http://www.cyberforum.ru/cpp-beginners/thread939088.html
Здравствуйте! Помоги пожалуйста разобраться со следующим: Как с клавиатуры ввести строковый литерал в символьный массив, расположенный в динамической памяти без фиксированного размера? char * ptr = new char; cin >> ptr; //или char * ptr = (char*) calloc(1,1); cin >> ptr; Использование "cin" - обрубает вносимый литерал на пробеле;
C++ Компиляция нескольких файлов Создал проект на wxDevC++ таким образом: потом создал три файла в проекте: coordin.h #ifndef COORDIN_H_ #define COORDIN_H_ struct haha { подробнее

Показать сообщение отдельно
Bretbas
183 / 42 / 6
Регистрация: 05.08.2013
Сообщений: 694
Завершенные тесты: 1
17.08.2013, 19:15  [ТС]     Добавление строк в Вектор
Jupiter,

Смотри,а почему когда я в цикле освобождаю память для buffer операцией
C++
1
delete [] buffer;
а потом в этом же цикле выделяю память после этого для buffer
C++
1
buffer = new char[10];
то выдает ахинею какую-то)

Вот цикл:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
while((ReadFile(file,c,sizeof(char),&In,NULL)) && (In > 0))
        {
            if(*c != '\r')
            {
                *buffer = *c;
                buffer++;
                k++;
            }
            else
            {
                *buffer = 0;
                buffer = buffer - k;
                List.push_back(buffer);
                    delete [] buffer;
                buffer = new char[10];
                k = 0;
            }       
        }
А вот как вы сказали:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        while((ReadFile(file,c,sizeof(char),&In,NULL)) && (In > 0))
        {
            if(*c != '\r')
            {
                *buffer = *c;
                buffer++;
                k++;
            }
            else
            {
                *buffer = 0;
                buffer = buffer - k;
                List.push_back(buffer);
 
                buffer = new char[10];
                k = 0;
            }       
        }
Все работает!!Но как же так,ведь после каждой итерацией цикла нужно освобождать память и потом опять выделять,а не просто выделять)Я вот это не пойму,можете объяснить пожалуйста)
 
Текущее время: 01:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru