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

Работа с одномерным целочисленным массивом в функции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка компиляции: идентификатор не определен http://www.cyberforum.ru/cpp-beginners/thread1775673.html
Приветствую всех. У меня такой вопрос , почему когда я пишу такой код, мне выдает ошибку на car* p_catalo = new car (идентификатор не определен.) Что я забыл написать? struct Car { string...
C++ Функции, вычислить сумму n первых членов арифметической прогрессии 1. Исходные данные должны вводиться в функции main(). 2. Первая функция должна возвращать заданную величину. 3. Во второй функции обеспечить контроль правильности исходных данных. Вторая функция,... http://www.cyberforum.ru/cpp-beginners/thread1775662.html
Написать комментарии к коду C++
Помогите написать комментарии к этому заданию. И подробно прояснить. #include <cstdlib> #include <cstdio> #include <string.h> class OneArmedBandit { int Chips; int **Ring; ...
C++ Найти сумму элементов матрицы в тех столбцах, которые содержат хотя бы один отрицательный элемент
Найти сумму элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент. Вот, написал код, а выводит только матрицу, которую вводим вручную и все. В чем ошибки? #include...
C++ Метод простой итерации http://www.cyberforum.ru/cpp-beginners/thread1775630.html
Метод простой итерации для решения систем линейных алгебраических уравнений
C++ Вектор объектов класса Всем привет! Несколько недель назад я писал сюда по поводу одной задачи. Она заключается в том, чтобы реализовать класс "Зоомагазин" с полями: тип животного, пол, цена, количество, а также придумать... подробнее

Показать сообщение отдельно
Kenny95
0 / 0 / 0
Регистрация: 26.02.2013
Сообщений: 15
08.07.2016, 04:54  [ТС]
Цитата Сообщение от zss Посмотреть сообщение
Сообщение от Kenny95
void addNewElIDA(int *IDA, int &sizeIDA) {
Передайте IDA по ссылке. Иначе при новом выделении памяти
Сообщение от Kenny95
IDA = new int(sizeIDA);
Вы измените адрес массива только в копии указателя.
Сделал как вы сказали, но все осталось по прежнему.

Цитата Сообщение от zss Посмотреть сообщение
Кстати, а почему у Вас в операциях типа new int(sizeIDA) круглые скобки, а не квадратные?
Это, ведь, выделение ОДНОГО элемента и инициализация его значением sizeIDA.
Всё время ставил круглые и все нормально работало. даже и не знал, что это большая разница.

Цитата Сообщение от zss Посмотреть сообщение
И ЕЩЁ я не вижу ни одного оператора delete[] ни для IDA ни для TempIDA
Спасибо, что-то совсем забыл про это.

Добавлено через 1 час 38 минут
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
void addNewElIDA(int* IDA, int &sizeIDA) {
    int number, pos, temp;
    int *tempIDA = new int[sizeIDA];
    for (int i = 0; i < sizeIDA; i++) {
        tempIDA[i] = IDA[i];
    }
    sizeIDA++;
    IDA = new int[sizeIDA];
    for (int i = 0; i < sizeIDA-1; i++) {
        IDA[i] = tempIDA[i];
    }
    system("cls");
    cout << "Введите номер нового элемента: ";
    while (!(cin >> pos) || (cin.peek() != '\n') || ((pos < 0) || (pos > sizeIDA))) {
        cin.clear();
        while (cin.get() != '\n');
        cout << endl << "Введено не корректное значение!" << endl;
        cout << "Введите номер нового элемента: ";
    }
    cout << "Введите значение нового элемента: ";
    while (!(cin >> number) || (cin.peek() != '\n')) {
        cin.clear();
        while (cin.get() != '\n');
        cout << endl << "Введено не корректное значение!" << endl;
        cout << "Введите значение нового элемента: ";
    }
    IDA[sizeIDA - 1] = number;
    for (int i = sizeIDA-1; i > pos; i--) {
        temp = IDA[i-1];
        IDA[i-1] = IDA[i];
        IDA[i] = temp;
    }
    cout << endl;
    for (int i = 0; i < sizeIDA; i++) {
        cout << IDA[i] << " ";
    }
    _getch();
}
C++
1
addNewElIDA(IDA, sizeIDA);
Так тут же и происходит передача по ссылке, разве нет?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru