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

Добавить в массив со сдвигом в право - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
_масяня_
 Аватар для _масяня_
28 / 28 / 2
Регистрация: 18.12.2010
Сообщений: 158
16.04.2011, 15:19     Добавить в массив со сдвигом в право #1
Здравствуйте уважаемые форумчане. Есть динамический одномерный массив, необходимо добавить в массив в заданную позицию, элементы находящиеся справа, сдвигаются на одну позицию вправо. Как такое можно реализовать? Пишу на СИ.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
 Аватар для Байт
13955 / 8786 / 1222
Регистрация: 24.12.2010
Сообщений: 15,913
16.04.2011, 15:23     Добавить в массив со сдвигом в право #2
C
1
2
3
4
a = realloc(a, (N+1)*sizeof(double));
N++;
for(i=N; i>k ; i--) a[i] = a[i-1];
a[k] = b; // новый элемент
_масяня_
 Аватар для _масяня_
28 / 28 / 2
Регистрация: 18.12.2010
Сообщений: 158
16.04.2011, 15:37  [ТС]     Добавить в массив со сдвигом в право #3
что в вашем коде означает переменная к?
Байт
 Аватар для Байт
13955 / 8786 / 1222
Регистрация: 24.12.2010
Сообщений: 15,913
16.04.2011, 15:45     Добавить в массив со сдвигом в право #4
Цитата Сообщение от _масяня_ Посмотреть сообщение
что в вашем коде означает переменная к?
Позиция, в которую вставляется элемент.
N - размер массива
_масяня_
 Аватар для _масяня_
28 / 28 / 2
Регистрация: 18.12.2010
Сообщений: 158
16.04.2011, 17:03  [ТС]     Добавить в массив со сдвигом в право #5
а стираются ли значения записанные в массиве когда мы перевыделяем дин. память функцией realloc?
Байт
 Аватар для Байт
13955 / 8786 / 1222
Регистрация: 24.12.2010
Сообщений: 15,913
16.04.2011, 17:55     Добавить в массив со сдвигом в право #6
Цитата Сообщение от _масяня_ Посмотреть сообщение
а стираются ли значения записанные в массиве когда мы перевыделяем дин. память функцией realloc?
Нет!
http://lmgtfy.com/?q=realloc
Yandex
Объявления
16.04.2011, 17:55     Добавить в массив со сдвигом в право
Ответ Создать тему
Опции темы

Текущее время: 04:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru