Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
3 / 3 / 5
Регистрация: 11.07.2014
Сообщений: 16
1

Memcpy и динамические массивы

13.03.2016, 02:25. Показов 2545. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Почему значение массива A изменилось? Как этого избежать?
C++
1
2
3
4
5
6
int *a = new int [2];
A[0] = 3; a[1]  = 5;
int *b = new int [2];
memcpy(&b,&a,sizeof(a));
b[0] = 4;
std::cout<<A[0];
Миниатюры
Memcpy  и динамические массивы  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.03.2016, 02:25
Ответы с готовыми решениями:

Memcpy, buffer overflow. Может ли возникнуть ошибка в функции memcpy
Бывает ли на практике такое, что код #define size 1000; // some value int x, y; /* ... */...

Динамические массивы и функции. Динамические массивы.
Дана матрица 6х8 целого типа. Создать одномерный массив, содержащий элементы матрицы, кратные...

Указатели и массивы. Индексация с помощью указателей. Передача массивов в функции. Динамические массивы (обработка матриц)
Для каждого элемента , bij, i= 1,...,n , j=1,...,n определяется свой многоугольник...

Структуры, массивы, указатели, динамические массивы структур
Помогите с решением задачи (прикрепляю условие). Заранее спасибо.

3
nd2
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
13.03.2016, 02:29 2
Если так:
C++
1
memcpy(b, a, sizeof(int) * 2);
0
Вездепух
Эксперт CЭксперт С++
11696 / 6375 / 1724
Регистрация: 18.10.2014
Сообщений: 16,071
13.03.2016, 02:31 3
Так вы не массивы копируете, а значения указателей. То есть весь ваш memcpy эквивалентен банальному b = a. Сами массивы от этого никак не меняются. Просто оба указателя теперь указывают на первый массив, а второй массив стал утечкой памяти.

Если вы хотели скопировать именно массивы, надо было делать memcpy(b, a, sizeof(int[2]));. Заметьте: никакого & в аргументах.
0
3 / 3 / 5
Регистрация: 11.07.2014
Сообщений: 16
13.03.2016, 02:41  [ТС] 4
TheCalligrapher,nd2, Спасибо!
0
13.03.2016, 02:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.03.2016, 02:41
Помогаю со студенческими работами здесь

Динамические массивы.
Знаю глупый вопрос, но подскажите пожалуйста. как в С++ динамечески задать двумерный строковый...

динамические массивы
нужно решить задачу с использование динамического массива%-) помогите пожалуйста, вот условие: ...

динамические массивы ?
как заполнить массив2 к примеру отрицательными элементами с массива1

Динамические массивы:
Найти максимальный элемент матрицы.


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru