Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2012, 10:51   #1
God_father
 
Регистрация: 26.01.2012
Сообщений: 8
По умолчанию Инкремент указателя на указатель

Добрый день. Подскажите пожалуста, как выполнить операцию увеличения указателя на указатель?

void func(char**p);

int main()
{
char a[3]="123";
char* b=a;
func(&b);
return 0;
}

void func(char **p)
{
P++; // НЕ ПРОКАТЫВАЕТ((
}

Последний раз редактировалось God_father; 26.01.2012 в 10:56.
God_father вне форума Ответить с цитированием
Старый 26.01.2012, 10:59   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
p
Цитата:
P
Дык регистр имеет значение же.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 26.01.2012, 11:03   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
P++; // НЕ ПРОКАТЫВАЕТ((
Не удивительно. Си регистрозависимый язык. У тебя параметр описан символом нижнего регистра а обращаешся ты к переменке в верхнем.
Вообще не описывать текст ошибки - плохой тон. Запомни это
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.01.2012, 11:22   #4
God_father
 
Регистрация: 26.01.2012
Сообщений: 8
По умолчанию

Спасибо. То что С++ регистрозависим, знаю *-) Вот скриншот:



Программа аварийно завершается.
В отладчике такая ошибка:
God_father вне форума Ответить с цитированием
Старый 26.01.2012, 11:33   #5
Inv1s
Форумчанин
 
Аватар для Inv1s
 
Регистрация: 06.11.2011
Сообщений: 214
По умолчанию

Код:
void func(char **c)
Замени на
Код:
void func(char *c)
ну и в выводе соответсвенно
Код:
cout<<*c<<endl;
Помог, нажми на весы
html, js, php, С++, С#, OpenGl, DirectX, XNA, HLSL
Inv1s вне форума Ответить с цитированием
Старый 26.01.2012, 11:44   #6
God_father
 
Регистрация: 26.01.2012
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Inv1s Посмотреть сообщение
Код:
void func(char **c)
Замени на
Код:
void func(char *c)
ну и в выводе соответсвенно
Код:
cout<<*c<<endl;
Так не пойдет)) Разумеется, он пишет, что не может привести один указатель к другому:
God_father вне форума Ответить с цитированием
Старый 26.01.2012, 11:49   #7
Inv1s
Форумчанин
 
Аватар для Inv1s
 
Регистрация: 06.11.2011
Сообщений: 214
По умолчанию

Код:
#include <iostream>
using namespace std;

void func(char *c)
{
	cout << ++(*c) << endl; 
}
int main()
{
	char stroka[6] = "12345";
	char *p;
	p = stroka;
	func(p);
	return 0;
}
Помог, нажми на весы
html, js, php, С++, С#, OpenGl, DirectX, XNA, HLSL
Inv1s вне форума Ответить с цитированием
Старый 26.01.2012, 11:51   #8
Inv1s
Форумчанин
 
Аватар для Inv1s
 
Регистрация: 06.11.2011
Сообщений: 214
По умолчанию

или так
Код:
	cout << *(++c) << endl;
в зависимости от того что именно тебе надо увеличить
Помог, нажми на весы
html, js, php, С++, С#, OpenGl, DirectX, XNA, HLSL
Inv1s вне форума Ответить с цитированием
Старый 26.01.2012, 11:52   #9
pproger
C++ hater
Старожил
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2God_father
Цитата:
c++;
cout << **c << endl;
ты понимаешь, что делаешь этой операцией? у тебя указатель на указатель. и двигаешь ты самый внешний указатель, за которым неизвестно что находится.
быть может, ты хотел сделать
Цитата:
(*с)++;
cout << **c << endl;
?
если нет, то объясни, чего хотел добиться
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 26.01.2012, 11:55   #10
Inv1s
Форумчанин
 
Аватар для Inv1s
 
Регистрация: 06.11.2011
Сообщений: 214
По умолчанию

Как я понял он хотел обратиться ко второму символу в строке
Помог, нажми на весы
html, js, php, С++, С#, OpenGl, DirectX, XNA, HLSL
Inv1s вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
инкремент и for ts-alan Общие вопросы C/C++ 6 25.08.2010 13:57
Инкремент для указателя массива структур Valter Общие вопросы C/C++ 6 31.05.2010 18:30
Инкремент константы в цикле, FASM suicide Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 8 19.12.2009 21:18
Инкремент и декремент в циклах Nvidia Общие вопросы C/C++ 8 17.10.2009 11:54
Инкремент и дикремент Golovastik Общие вопросы C/C++ 3 16.07.2009 13:39