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

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

Войти
Регистрация
Восстановить пароль
 
ФантомПамяти
0 / 0 / 0
Регистрация: 08.04.2015
Сообщений: 20
#1

Указатель на указатель - C++

18.10.2015, 16:00. Просмотров 127. Ответов 1
Метки нет (Все метки)

Есть задача: Дана динамическая строка размер массива символов которой точно соответствует строке. написать функцию которая добавляет переданное слово к данной строке. Решить через указатель на указатель.

Вот как я её решаю без него:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
using std::cout;
using std::endl;
 
void main() {
char str[] = "London is the capital of Great Britain. The full name of the country is the United Kingdom of Great Britain and Northern Ireland. London is an ancient city.";
    char str2[] = " It grew up around the first point where the Roman invaders found the Thames narrow enough to build a bridge.";
 
    char *ptr = NULL;
    ptr = new char[strlen(str)]; //динамическая строка размер массива символов которой точно соответствует строке
    
    strcpy(ptr, str); //передаем исходное значение в строку
 
    strcat(ptr, str2); //передаем второе значение в строку
 
    cout << ptr << endl;}
Еще нужно в код очистку памяти вставить, но пока не реализовал.

Вопрос: как тут применить указатель на указатель и зачем? Что бы в функции менять указатель?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2015, 16:00     Указатель на указатель
Посмотрите здесь:

Реализация двоичных деревьев поиска: Зачем в параметрах функции используется указатель на указатель - C++
Всем привет, встретил в книге такой пример добавления узла в дерево: typedef struct tree { int data; tree *left, *right,...

Указатель на указатель, функции для создания новых массивов? - C++
Всем привет! У меня в коде есть несколько новых массивов, чтобы не повторяться я создам функцию которая будет выделять память под новые...

Приведение любого двумерного массива к типу указатель на указатель - C++
Допустим, есть несколько массивов int arr1; int arr2; int arr3; Какое преобразование нужно сделать, чтобы подобные присвоения...

Функция принимает указатель на void и возвращает указатель на int - C++
Запишите прототип функции, которая принимает указатель на void и возвращает указатель на int.

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

Передать в неуправляемую функцию указатель на указатель - C++
Неуправляемая функция типа FUNC(int ** r); Делаю так fixed (int* ptr = arr) { FUNC((int **)ptr); ...

Указатель на указатель, класс группа - C++
помогите пожалуйста не могу понять что со строкой 312 знаю что с указателем что то не то... но исправить не получается //4. В...

Про указатель *, указатель на указатель **, и про new - C++
#include &quot;stdafx.h&quot; class neuro { public: double *inputs; int inputs_count; neuro(int uc, double ii ) { ...

Указатель - C++
Можете объяснить устройство работы ,мне казалось что если вызвать просто ptr то должен возвратиться адрес,а если * ptr ,то значение,здесь...

указатель на this - C++
Если в описании метода класа написать list n = *this; list - имя класса, то в n будет содержаться указатель на текущий обьект, ссылка...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
5275 / 4595 / 1540
Регистрация: 14.04.2014
Сообщений: 18,255
18.10.2015, 16:19     Указатель на указатель #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <iostream>
 
using std::cout;
using std::endl;
 
void Add(char **a, char b)
{
    char *t = new char[strlen(*a) + strlen(b) + 1];
    strcat(strcpy(t, *a), b);
    delete[] *a;
    *a = t;
}
 
void main()
{
    char str[] = "London is the capital of Great Britain. The full name of the country is the United Kingdom of Great Britain and Northern Ireland. London is an ancient city.";
    char str2[] = " It grew up around the first point where the Roman invaders found the Thames narrow enough to build a bridge.";
 
    char *ptr = new char[strlen(str) + 1];
    strcpy(ptr, str); //передаем исходное значение в строку
 
   Add(&ptr, str2);
 
    cout << ptr << endl;
 
    delete[] ptr;
}
Ответ Создать тему
Опции темы

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