Форум программистов, компьютерный форум 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; есть...
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". Поиск по названию блюда происходит нормально, а вот если ввести блюдо, которого нет - выводит миллион раз. Поиск...
C++ Как узнать размер массива в динамической памяти?
Добрый вечер еще раз! Напишите пожалуйста как можно узнать истинный размер массива, находящегося в динамической памяти, созданными при помощи malloc или calloc. Т.к. если выделить константный...
C++ Ввод строки в динамический массив http://www.cyberforum.ru/cpp-beginners/thread939088.html
Здравствуйте! Помоги пожалуйста разобраться со следующим: Как с клавиатуры ввести строковый литерал в символьный массив, расположенный в динамической памяти без фиксированного размера? char * ptr...
C++ Компиляция нескольких файлов Создал проект на wxDevC++ таким образом: потом создал три файла в проекте: coordin.h #ifndef COORDIN_H_ #define COORDIN_H_ struct haha { подробнее

Показать сообщение отдельно
Bretbas
Каждому свое
300 / 99 / 27
Регистрация: 05.08.2013
Сообщений: 1,145
Завершенные тесты: 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;
            }       
        }
Все работает!!Но как же так,ведь после каждой итерацией цикла нужно освобождать память и потом опять выделять,а не просто выделять)Я вот это не пойму,можете объяснить пожалуйста)
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru