尝试在C中调用此函数而没有任何真正的运气:
int sendcommand(char str[256], char reply[256])
我尝试了许多变体,例如:
char request[] = "help";
char response[];
int result = sendcommand( request, *response );
我实际上已经完成了一些C和C ++,但由于某种原因,我错过了一些非常基础的船。
答案 0 :(得分:6)
你甚至不知道什么是正确的,你可以看到你的电话是错的......
int sendcommand(char str[256], char reply[256])
具有相同签名的两个形式参数。
char request[] = "help";
char response[];
两个具有相同类型的真实参数。
那么为什么在传递它们时会使用不同的语法?
当然,这并不是全部错误,您需要声明响应参数的大小足以返回值。将其声明为为formal参数指定的大小是最安全的。
char request[] = "help";
char response[256];
int result = sendcommand( request, response );
答案 1 :(得分:3)
response
是一个指针,但当函数采用char
时,您将其取消引用到char*
。
这应该有效:
int result = sendcommand(request, response);