Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.95
Altair42
0 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 349
#1

Инициализация динамического массива - C++

21.05.2014, 10:42. Просмотров 3855. Ответов 21
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main()
{
    int a, i = 0;
    int *array = new int [10];
    std::cout << "Enter numbers " << std::endl;
    while(std::cin >> a)
    { i < 10;
       array[i] = a;
    std::cout << *array << std::endl;
        }
    delete [] array;
    _getch();
        return 0;
}
Как я понял массив имеет ограниченный размер. Если это так? Если размер массива известен. А он известен:
C++
1
int *array = new int [10];
То возникает вопрос. Почему при введение строки, размер которого превышает размер массива, вся строка вводится в массив, как в вектор?
Скрин:
Инициализация динамического массива
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2014, 10:42
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Инициализация динамического массива (C++):

Инициализация Динамического массива - C++
Друзья просмотрите пожалуйста мой динамический массив правильно ли я его длясебястолковал #include&lt;iostream&gt; using namespace std; ...

Инициализация динамического массива - C++
Прога генерирует случайные числа(1-100) выводит их, пока не встретится 98, сохраняя все в массиве. Но мне нужно очень, чтобы программа сама...

Инициализация динамического массива - C++
Народ, подскажите как сделать так что бы, можно было задать размер массива через консоль, а не в коде через const (Если можете - объясните,...

Инициализация динамического массива - C++
Создан динамический массив (при помощи функций). Пробую инициализировать при помощи фигурных скобок.:umnik: #include &quot;stdafx.h&quot; ...

Инициализация двумерного динамического массива - C++
Как задать численные значения элементам двумерного динамического массива при его инициализации? int n=2; double **a; ...

Инициализация N-мерного динамического массива - C++
Добрый день. Возникла идея написать функцию, которая инициализировала n-мерный динамический массив, что бы не писать кучу вложенных...

21
Altair42
0 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 349
21.05.2014, 19:40  [ТС] #16
Tuma, я уже понял почему запись идет только в а[0]. Но не понял почему цикл бесконечный. Если другии элементы массива не инициализируется явно то они по умолчанию инициализиуются значением 0.

Только что проверил. Цикл бесконечный даже если ввести 0. (Добавил строку после цикла. На него не переходит)

Добавлено через 4 минуты
Примерно такой же код написал для вектора (ранее). Там цикл вообще не переходил на второе действие (запоминал вводимые данные в вектор и все) Пока не ввел функцию if чтоб завершит ввод в вектор ( с работой функции cin.get(), cin.clear() не знаком только разок показали код и не работает, когда дойду до него тогда и начну использовать )
0
karaulov6
-42 / 23 / 2
Регистрация: 23.03.2013
Сообщений: 243
Завершенные тесты: 2
21.05.2014, 19:42 #17
Tuma, Его цикл закончится если ввести не число
0
Tuma
60 / 41 / 18
Регистрация: 28.09.2013
Сообщений: 193
21.05.2014, 19:50 #18
Altair42, цикл бесконечный потому что у вас условие в нем такое
C++
1
while(std::cin >> a)
,то есть пока существует a,то он будет выполняться,как только а=0,
C++
1
while(0)
то ничего не произойдет.
Так же может быть вам стоит в качестве пособия использовать не одну книгу,а несколько.Например, "Оверленд Б. - C++ без страха" (вроде все понятно написано).

Добавлено через 7 минут
Ну при a=0 тоже работает,значит я не прав.
0
Altair42
0 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 349
21.05.2014, 20:05  [ТС] #19
Tuma, я не жалуюсь на книгу все написано вполне понятно. Некоторые детали оставлено на потом для глубокого изучение в нужных разделах. Пока только основы.
Но спасибо за книжку. Обязательно посмотрю
0
dzrkot
zzzZZZ...
523 / 354 / 54
Регистрация: 11.09.2013
Сообщений: 2,039
21.05.2014, 21:12 #20
Цитата Сообщение от Altair42 Посмотреть сообщение
Tuma, я не жалуюсь на книгу все написано вполне понятно.
как вы умудрились дойти до STL библиотек и итераторов, при этом не зная основ?
По вашему Липпману отзывов хороших не нашёл, сам не читал не знаю, но имхо Дейтл "Как программировать на С++" и С.Прата"Язык программирования С++" лучше. Начните лучше читать что-то из этого (Прата потяжелее но имхо поинтереснее)
0
intern
15 / 15 / 6
Регистрация: 30.03.2014
Сообщений: 74
Завершенные тесты: 2
22.05.2014, 11:18 #21
Возможно, так будет наглядно (N+1 в циклах for взято в учебных целях):
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
#include <iostream>
 
int main ()
{
    const int N = 10;
    int *array = new int [N];
 
    for (int i=0; i!=N+1; ++i)
    {
        std::cout << "array[" << i << "] = " << array[i] << std::endl;
    }
 
    int a, i=0;
    std::cout << "Enter numbers:" << std::endl;
    while (std::cin >> a)
    {
        if (i>=N)
        {
            break;
        }
        else
        {
           array[i] = a;
           ++i;
        }
    }
 
    for (int i=0; i!=N+1; ++i)
    {
        std::cout << "array[" << i << "] = " << array[i] << std::endl;
    }
 
    delete [] array;
 
    return 0;
}
0
Altair42
0 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 349
24.05.2014, 10:56  [ТС] #22
dzrkot, я не дошел до STL библиотек. Пока изучаю асновы. Тут только "намеки" на некоторые библиотеки.
Изучали по порядку:
-Стандартные объекты ввода и ввода.
-Операторы if, while, for
-Введение в классы. Класс Sales_item.(такого класса не существует я так понял это чтобы показать пример)
-Переменные и базовые типы
-Библиотечные типы данных
-Массивы и указатели
-Выражения.
Это пока асновы. Дальше пойдет операторы, функции, библиотеа ввода-вывода. Вторая часть Контейнеры и Алгоритмы, 3-я часть абстракция класы и данные, 4-я часть. Объектно ориентированное и общее программирование.
В книге все разделено так чтоб изучали все когда придет время. Многое что относится к библиотекам вектор, стринг оставили на потом для более подробного изучение когда сможем их понят. (По крайней мере так написано )

Добавлено через 2 минуты
intern, понятненко.
0
24.05.2014, 10:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2014, 10:56
Привет! Вот еще темы с ответами:

Инициализация двумерного Динамического массива - C++
У меня вопрос. Могу ли я создать двумерный динамический массив и инициализировать его своими значениями в коде программы. #include...

Обьявление и инициализация динамического двумерного массива в классе - C++
Пытаюсь создать в классе динамический двумерный массив, не могу понять что я делаю не так( При вызове деструктора - ошибка class...

Функция с применением динамического массива, чтобы размер массива увеличивался по мере необходимости - C++
Ребята, подскажите, кто может, каким образом создать функцию с применением динамического массива, но так, чтобы размер массива увеличивался...

Создайте класс динамического массива, в котором реализована проверка выхода за границы массива - C++
Создайте класс динамического массива, в котором реализована проверка выхода за границы массива. Перегрузите операторы: , =, +, -,++...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru