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

Ввод строки в динамический массив - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Компиляция нескольких файлов http://www.cyberforum.ru/cpp-beginners/thread939085.html
Создал проект на wxDevC++ таким образом: потом создал три файла в проекте: coordin.h #ifndef COORDIN_H_ #define COORDIN_H_ struct haha {
C++ .h и .cpp файлы Если я объявляю в одном .h файле 3 класса, то могу ли я сделать полное определение методов для 3 классов в одном .cpp файле? http://www.cyberforum.ru/cpp-beginners/thread939078.html
Символ новой строки C++
Всем привет) С маппировал текстовый файл в память. HANDLE file = CreateFile(fileNameWChar, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); DWORD fileSize = GetFileSize(file, NULL); HANDLE fileMap = CreateFileMapping(file, NULL, PAGE_READWRITE, 0, 0, NULL); char *pvFileSrc = (char *)MapViewOfFile(fileMap, FILE_MAP_WRITE, 0, 0, fileSize); если в...
Поменять слова в сообщении по принципу: первое со вторым, третье с четвертым и т.д C++
Помогите, пожалуйста решить задачку с использованием класса string. Я только учусь, и меня пока плохо получается.. Поменять слова в сообщении по принципу: первое со вторым, третье с четвертым и т.д. Вот мои наработки.. Но программа зациклилась и всё убила, пришлось перезапускать компьютер. #include <iostream> #include <cstdlib> #include <conio.h> #include <string> using namespace std;
C++ Необработанное исключение. Нарушение прав доступа при чтении http://www.cyberforum.ru/cpp-beginners/thread939018.html
Ребят помогите. В общем есть программа, открывает один файл, ищет в нем последовательности, заменяет на другие. В консоли все прекрасно работает и сохраняет. Сделал интерфейсную программу, с двумя кнопкам "Открыть файл" и "Сохранить файл". В буфер все записывается. Исрользуется динамический массив. Файловые потоки в конце закрываю. Массив удаляю. Действие такое, нажал "Открыть файл"...
C++ векторы пары строки Здрассте! прокоментируйте вторую строку пожалуйса, я первой разобрался std::vector<std::pair<std::string, std::string>> BuildEdgeGraph( const std::vector<std::pair<std::string, std::string>> & graph ); Добавлено через 59 секунд а лучше всё вместе подробнее

Показать сообщение отдельно
reisal78
 Аватар для reisal78
603 / 516 / 119
Регистрация: 28.04.2013
Сообщений: 1,451
16.08.2013, 20:28     Ввод строки в динамический массив
К сожалению прямо сейчас не могу прямо под твой вопрос ответ написать, но не так давно я делал похожее решение. Листинг под спойлером. =)
В ответ на мое решение мне посоветовали
На самом деле, частым выделением памяти, да ещё и под столь малые по размеру объкты, лучше не увлекаться, если вам нужен "бесконечный" массив, используйте вектор.
Но мой вариант тоже работает )

Не по теме:

А до веткротов я еще так и не добрался )


Кликните здесь для просмотра всего текста


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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
 
using std::cin;
using std::cout;
using std::endl;
 
int main()
{
    //создание "бесконечного" массива
    int size_arr(1);   // ок, тк размер динамического массива надо задавать хоть я его и не знаю, ну задам ему единицу.
    long *values(nullptr); //задам указатель
    values = new long [size_arr]; // выделю память под массив
    
    long *tmpValues(nullptr); // делаю временный указатель
 
    long inputValue(0);  
    
 
    while (true)
    {
        cout << "Enter value, 0 - exit: ";
        cin >> inputValue;  //запрашиваю у пользователя зхначение
        
        if (inputValue==0)  //если пользователь  ввел 0 - выхожу из цикла
            break;
 
        values[size_arr-1] = inputValue; // записываю введеное значение в массив
       
 
        {
                size_arr++; // увеличиваю размер массива на 1
                tmpValues = new long[size_arr]; //выделяю память под временный массив с увеличенным размером на 1
 
                for (int i = 0; i < size_arr-1; i++)  //Перекидываю значения из основного массива во временный
                    tmpValues[i] = values [i];
                    
                delete[] values; //Очищаю память выделеную под основной массив
                
                values = tmpValues; //Эм... "подменяю" адреса, так похоже правильно будет сказать
 
                tmpValues = nullptr; // "сбрасываю" значения временного указателя 
        }
 
        
 
    }
    
                  
return 0;
}
 
Текущее время: 18:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru