Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > проблема с передачей строки функцие


Автор: _par 30.4.2007, 22:14
Есть функция :
Код

int explode( char *str, char sym,char *s1, char *s2 )
{
    
    
    s1 = strtok (str,sym);
    s2 = strtok (NULL,sym);
    return 0;
}


Нужно чтобы менялось значение фактического аргумента.
Когда пытаюсь передать по ссылке компилятор ругается
Код


explode(str, &arg1, &arg2);
139 C:\Documents and Settings\1337\Desktop\main.cpp cannot convert `char**' to `char*' for argument `2' to `int explode(char*, char*, char*)' 

Подскажите что нетак, и как лучше реализовать разбивку строки по символу.  smile 

Автор: Greeen 30.4.2007, 22:49
Что такое фактический аргумент? smile Покажи вызов функции.

Автор: Romikgy 30.4.2007, 22:55
Цитата(_par @  30.4.2007,  21:14 Найти цитируемый пост)
str, &arg1, &arg2

как это описано?

Автор: zkv 30.4.2007, 22:55
Код

Func( char *&pcArg );//передача char * по ссылке.
//...
char *pcStr;
Func( pcStr );

это имелось ввиду?
Цитата(_par @  30.4.2007,  22:14 Найти цитируемый пост)
explode(str, &arg1, &arg2);

так понимаю переменные объявлены так:
Код

char *arg1;
char *arg2;

здесь вы передаете адреса указателей, те получается char **

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)