void GetMaxQuant(char*,char*,char*);
int main(int argc, char* argv[])
{
char j[50],i[50],z[50],n[50];
GetMaxQuant(&i[0],&j[0],&z[0]);
return 0;
}
void GetMaxQuant(char*x,char*y,char*z1)
{
strcpy(x, "string1");
strcpy(y, "string2");
strcpy(z1, "string3");
};
Функция возращающая несколько значений. Вопрос.
с целыми типа int проблем нет.
Проблема появляется когда необходимо вернуть две строки.
для int у меня это выглядит так:
void GetMaxQuant(int*,int*,int*);
int main(int argc, char* argv[])
{
int j,i,z,n;
GetMaxQuant(&i,&j,&z);
return 0;
}
void GetMaxQuant(int*x,int*y,int*z1)
{
*x=11;
*y=61;
*z1=41;
};
Как сделать тоже для char*??????
Код:
void GetMaxQuant(char*,char*,char*);
int main(int argc, char* argv[])
{
char j[50],i[50],z[50],n[50];
GetMaxQuant(&i[0],&j[0],&z[0]);
return 0;
}
void GetMaxQuant(char*x,char*y,char*z1)
{
strcpy(x, "string1");
strcpy(y, "string2");
strcpy(z1, "string3");
};
int main(int argc, char* argv[])
{
char j[50],i[50],z[50],n[50];
GetMaxQuant(&i[0],&j[0],&z[0]);
return 0;
}
void GetMaxQuant(char*x,char*y,char*z1)
{
strcpy(x, "string1");
strcpy(y, "string2");
strcpy(z1, "string3");
};
Так вроде...[/QUOTE]
к сожалению нет....
[C++ Error] Unit1.cpp(14): E2034 Cannot convert 'char ( *)[50]' to 'char *'
[C++ Error] Unit1.cpp(14): E2340 Type mismatch in parameter 1 (wanted 'char *', got 'char ( *)[50]')
[C++ Error] Unit1.cpp(14): E2034 Cannot convert 'char ( *)[50]' to 'char *'
[C++ Error] Unit1.cpp(14): E2340 Type mismatch in parameter 2 (wanted 'char *', got 'char ( *)[50]')
[C++ Error] Unit1.cpp(14): E2034 Cannot convert 'char ( *)[50]' to 'char *'
[C++ Error] Unit1.cpp(14): E2340 Type mismatch in parameter 3 (wanted 'char *', got 'char ( *)[50]')
ты уверен что ты ее так вызываешь?
надо указать не &i, а &i[0]
соответственно не &j, a &j[0]
и т.д.
Это потому что надо передать адрес первого символа строки...
попробуй еще раз!
ты уверен что ты ее так вызываешь?
надо указать не &i, а &i[0]
соответственно не &j, a &j[0]
и т.д.
Это потому что надо передать адрес первого символа строки...
попробуй еще раз![/QUOTE]
урааа!!!!!!
спасибо что отредактировал свое первое сообщение в лучшую сторону... теперь работает..........)))))))))))))))
Код:
[LEFT]void GetMaxQuant(char*,char*,char*);[/LEFT]
[LEFT]int main(int argc, char* argv[])
{
char j[50],i[50],z[50],n[50];
[COLOR=red]GetMaxQuant(i,j,z); [/COLOR][COLOR=seagreen]/*результат будет такой же, функция получит адресс нулевой ячейки. вышеописанный метод используют если не хотят передавать строку с нулевого адресса, а c [3] например*/[/COLOR]
return 0;
}[/LEFT]
[LEFT]void GetMaxQuant(char*x,char*y,char*z1)
{
strcpy(x, "string1");
strcpy(y, "string2");
strcpy(z1, "string3");[/LEFT]
[LEFT]};[/LEFT]
[LEFT]int main(int argc, char* argv[])
{
char j[50],i[50],z[50],n[50];
[COLOR=red]GetMaxQuant(i,j,z); [/COLOR][COLOR=seagreen]/*результат будет такой же, функция получит адресс нулевой ячейки. вышеописанный метод используют если не хотят передавать строку с нулевого адресса, а c [3] например*/[/COLOR]
return 0;
}[/LEFT]
[LEFT]void GetMaxQuant(char*x,char*y,char*z1)
{
strcpy(x, "string1");
strcpy(y, "string2");
strcpy(z1, "string3");[/LEFT]
[LEFT]};[/LEFT]