文字列を返す関数が必要でした。次のコードを使用して関数を宣言しました。
const char* serv_con(char app_data[50])
{
char send_data[1024],recv_data[1024];
//i am avoiding code segments irrelevant to the issue.
return recv_data;
}
次に、メインの関数を次のように呼び出します。
int main()
{
char ser_data[50], app_data[50];
ser_data[0] = '\0';
app_data[0] = '\0';
//avoiding code segments irrelevant to the issue.
app_data = serv_con(ser_data); //function call
}
コンパイルすると、次のエラーが表示されます。
connect.c:109: error: incompatible types when assigning to type ‘char[50]’ from type ‘const char *’
次に、宣言のconst charを std::string に置き換えました。現在の宣言は次のとおりです。
std::string serv_con(char app_data[50])
{
char send_data[1024],recv_data[1024];
//avoiding code segments irrelevant to the issue.
return recv_data;
}
そして、上記と同じ方法でそれを呼び出しました。しかし、それでもコンパイル時に次のエラーが発生します。
connect.c:13: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘:’ token
関数からの戻り値の型として文字列を指定する方法を教えてください。私が取り組んでいるプラットフォームは Linux です。前もって感謝します。