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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
jon_illien
2 / 2 / 1
Регистрация: 14.08.2012
Сообщений: 78
#1

Динамический массив и указатель на указатель - C++

03.10.2012, 20:12. Просмотров 646. Ответов 3
Метки нет (Все метки)

Спасибо за внимание) Задача такова: нужно удалить элемент по индексу, при этом уменьшить сам массив на 1 (т.е. удалили элемент - уменьшился массив). Помогите!



C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int N = 10
    int *a = new int [N];
    int k = 5;
 
        cin >> k;
 
    func(a, N, k);
    
 
void func(int *a, int &n, int k)
{
    int *b = new int [n-1];
    
 
    for(int i=0, j=0; i<n; i++)
    {
        if(i==k)    continue;
        *(b+j++) = *(a+i);
    }
 
    delete []a;         ВОТ ТУТ И ПРОБЛЕМА. 
    *a = *b;            после удаления а, нужно к а приравнять b
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2012, 20:12     Динамический массив и указатель на указатель
Посмотрите здесь:

Динамический массив и указатель - C++
Всем привет. Пытаюсь понять тему динамических массивов. Прошу помочь разобраться в следующем: Есть код (пример): int num = 5;...

Указатель на двухмерный динамический массив - C++
Друзья, нужна Ваша помощь! Создаю одномерный динамический, создаю указатель на него (вернее на его первый эл-т). То же самое пытаюсь...

Классы, указатель на динамический массив - C++
Здравствуйте, Подскажите пожалуйста, в чем моя ошибка, у меня есть класс Треугольник, на основании его мне нужно создать так...

Умный указатель и динамический массив - C++
Здравствуйте! Есть проблема со следующим заданием. Есть класс умного указателя, используя его необходимо, создать каталог товаров (+ 2...

Нужно сделать указатель на динамический двумерний массив - C++
Есть динамический массив, псевдо-код: #include &lt;iostream&gt; using namespace std; const int x = 10; int main() { ...

Не работает динамический массив в классе: что раньше, указатель или размер? - C++
Подскажите пожалуйста где ошибка class arar { int*arr, size; public: arar() :arr(new int()), size(10) { for (int i(0); i...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
doctor_lecter
280 / 153 / 8
Регистрация: 22.09.2012
Сообщений: 283
03.10.2012, 20:17     Динамический массив и указатель на указатель #2
Вместо *a = *b; надо a=b;

А чтобы вернуть из функции новый массив надо изменить так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void func(int **a, int &n, int k)
{
    int *b = new int [n-1];
    
 
    for(int i=0, j=0; i<n; i++)
    {
        if(i==k)    continue;
        *(b+j++) = *((*a)+i);
    }
 
    delete [](*a); 
    *a = b;
}
jon_illien
2 / 2 / 1
Регистрация: 14.08.2012
Сообщений: 78
03.10.2012, 20:48  [ТС]     Динамический массив и указатель на указатель #3
спасибо. замечательно. вышло.

Добавлено через 26 минут
Цитата Сообщение от doctor_lecter Посмотреть сообщение
Вместо *a = *b; надо a=b;

А чтобы вернуть из функции новый массив надо изменить так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void func(int **a, int &n, int k)
{
    int *b = new int [n-1];
    
 
    for(int i=0, j=0; i<n; i++)
    {
        if(i==k)    continue;
        *(b+j++) = *((*a)+i);
    }
 
    delete [](*a); 
    *a = b;
}
Все таки не недоумеваю, зачем нужен указатель на указатель
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.10.2012, 20:57     Динамический массив и указатель на указатель
Еще ссылки по теме:

В функцию передается несколько целых чисел. Создать из всех параметров динамический массив и вернуть указатель - C++
В функцию передается несколько целых чисел. Создать из всех параметров динамический массив и вернуть указатель на него. Первым элементом...

Функция принимает указатель на динамический массив и возвращает его же, но без чисел полиндромов (читается с обоих сторон одинаково - 234432) - C++
Вот мое решение, подскажите, пожалуйста, что изменить, чтобы заработала программа: # include &lt;iostream&gt; # include &lt;stdlib.h&gt; #...

Динамический список, беглый указатель - C++
Здравствуйте, помогите решить следующую проблему: в задании сказано создать двусвязный динамический список и произвести с ним некоторые...

Преобразовать указатель одного типа в указатель другого. - C++
Всем привет. Мне нужно выполнить задание &quot;Преобразовать указатель одного типа в указатель другого. &quot; Что-то совсем не понимаю. Помогите...

указатель на указатель или присваивание объекта - C++
Доброе утро. Вот я в своем классе создал параметр class TTo4ka { ... TGrup **MyGrup; ... };

Указатель на указатель и Нарушение прав доступа - C++
функция, добавляющая новый элемент в динамический массив из указателей При вызове : pData=Add(NULL,1,question); Работает исправно,...


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

Или воспользуйтесь поиском по форуму:
doctor_lecter
280 / 153 / 8
Регистрация: 22.09.2012
Сообщений: 283
03.10.2012, 20:57     Динамический массив и указатель на указатель #4
Потому что указатель который передается в функцию и указатель внутри функции это не одно и тоже; и поэтому при изменении значения указателя внутри функции вне функции он не изменится.
Yandex
Объявления
03.10.2012, 20:57     Динамический массив и указатель на указатель
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru