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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка компиляции: идентификатор не определен http://www.cyberforum.ru/cpp-beginners/thread1775673.html
Приветствую всех. У меня такой вопрос , почему когда я пишу такой код, мне выдает ошибку на car* p_catalo = new car (идентификатор не определен.) Что я забыл написать? struct Car { string name; int year; }; int main()
C++ Функции, вычислить сумму n первых членов арифметической прогрессии 1. Исходные данные должны вводиться в функции main(). 2. Первая функция должна возвращать заданную величину. 3. Во второй функции обеспечить контроль правильности исходных данных. Вторая функция, кроме вычисления заданной величины, должна возвращать признак правильности исходных данных. 4. В функции main() вывести результат работы первой функции и результат работы второй функции или сообщение... http://www.cyberforum.ru/cpp-beginners/thread1775662.html
Написать комментарии к коду C++
Помогите написать комментарии к этому заданию. И подробно прояснить. #include <cstdlib> #include <cstdio> #include <string.h> class OneArmedBandit { int Chips; int **Ring; void RandQueue(int); public:
C++ Найти сумму элементов матрицы в тех столбцах, которые содержат хотя бы один отрицательный элемент
Найти сумму элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент. Вот, написал код, а выводит только матрицу, которую вводим вручную и все. В чем ошибки? #include <iostream> #include <stdio.h> #define N 30 int main(void) { int i,j, n, m, sum;
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);
Так тут же и происходит передача по ссылке, разве нет?
 
Текущее время: 14:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru