Проблема с передачей указателя на строку в функцию.
Вот кусок из тексат проги:
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);
Забыл упомянуть, что все вышеопмсанное мной происходило в BC++Builder v6.0.
Цитата:
Originally posted by Unregistered
Забыл упомянуть, что все вышеопмсанное мной происходило в BC++Builder v6.0.
Забыл упомянуть, что все вышеопмсанное мной происходило в 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;