Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема с передачей указателя на строку в функцию.

3.2K
01 июня 2005 года
Unregistered
26 / / 22.08.2004
Не могу догнать в чем дело. В одну из функций передаю указатель на объект-строку (char *). После вызова функции этот указатель почему-то имеет другое значение (а именно NULL). Кто может подсказать в чем проблема?
Вот кусок из тексат проги:
printf("%d",strbuf); //здесь нормальное значение указателя
curpos_in_strbuf =
NextString (strbuf, curpos_in_strbuf);
printf("\n%d", curpos_in_strbuf);
printf("%d",strbuf); //вот как раз сдесь выводится //новое значение указателя. хотя прям при выходе из функции вывожу его значение - нормальное.

Объявление функции выглядит след. образом:
int NextString(const char *strbuf1, int curpos);
3.2K
01 июня 2005 года
Unregistered
26 / / 22.08.2004
Забыл упомянуть, что все вышеопмсанное мной происходило в BC++Builder v6.0.
488
01 июня 2005 года
Mоngооsе
465 / / 01.04.2005
Цитата:
Originally posted by Unregistered
Забыл упомянуть, что все вышеопмсанное мной происходило в BC++Builder v6.0.

Что-то в ф-ии не то. То что при выходе из ф-ии аргумент имеет прежнее значение, ни о чем не говорит. Это простое число, связано с strbuf только тем, что получает от него значение.

Можно проверить, только нужно изменить NextString

int NextString(const char *strbuf1, int curpos, char **strbuf)
{
...
...
...
//в конце проверка
ShowMessage(*strbuf); //Если NextString затирает значение strbuf, здесь должна выскочить ошибка
}

вызов

NextString (strbuf, curpos_in_strbuf, &strbuf;

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог