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

Добавление записей в массив - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Многопоточность http://www.cyberforum.ru/cpp-beginners/thread964819.html
Здравствуйте! Пожалуйста посоветуйте литературу или какие либо статьи для изучение многопоточных приложений где расписано все подробно. (для чайника)
C++ Нулевые элементы размещены в верхнем и нижнем треугольнике, за условием разделения матрицы диагоналями на 4 треугольника Прошу помочь мне так как я вообще незнаю что делать. У нас в университете такая ситуация что только было две лекции по языку С++ одна из которых история языка, а в предмете по алгоритмах в 1 лабе задача непонятно какого уровня где уже используют "указатели". Начал читать книжку Лафоре, но до указателей мне еще далеко, а задачу надо решить до завтра. Помогите пожалуйста Задача: Нулевые элементы... http://www.cyberforum.ru/cpp-beginners/thread964810.html
C++ Числовая последовательность 2n!
Написать программу или хотя бы алгоритм, которая для n=0,1,2... вычисляет максимальный элемент и его номер и выводит на экран
C++ Как сделать в конструкциий switch, чтобы он считал норм float и double
Подскажите как сделать в конструкциий switch что бы он считал норм float и doable и возможна как то сделать case 095:
C++ В 10-ую сс http://www.cyberforum.ru/cpp-beginners/thread964778.html
Помогите написать программу перевода из любой сс в 10-ую сс...
C++ Перегрузка операции присваивания и сложения Необходимо составить описание класса для определения одномерных массивов целых чисел. Границы индексов можно задавать произвольно, т.е. массив не обязательно начинается с нуля. При попытке сложения массивов выскакивает ошибка ("нарушение прав доступа при чтении по адресу"). Укажите ошибку, пожалуйста. #include "stdafx.h" #include <iostream> #include <locale.h> using namespace std; подробнее

Показать сообщение отдельно
newb_programmer
 Аватар для newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 553
29.09.2013, 14:23  [ТС]     Добавление записей в массив
Цитата Сообщение от Fyret Посмотреть сообщение
Указатель передается по значению, arr в main и в push - разные указатели, хотя изначально указывают на одну и ту же область памяти. Исправить можно так:
C++
1
2
3
4
void push(int*&, int, int&);
...
void push(int*& arr, int n,int& size)
...

Не по теме:

И саму функцию push можно оптимизировать: memcpy, однократное выделение и освобождение памяти.

можете для тех кто в танке пояснить про эту ситуацию с указателями. если "почему не работало" кое как может и было понятно, то "почему заработало" вообще не ясно=)))

и по memcpy-попробовал впихнуть, опять на экране мусор...если я правильно понял смысл функции memcpy.
C++
1
2
3
4
5
6
7
8
9
10
void push(int*& arr, int n,int& size) {
    size++;
    int* arr2=new int[size];
    memcpy(arr2,arr,sizeof(arr));
    arr2[size-1]=n;                 
    delete [] arr;
    arr=new int[size];
    memcpy(arr,arr2,sizeof(arr2));
    delete [] arr2;
}
 
Текущее время: 20:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru