试图调用C时,该功能没有任何真正的运气:简单的C函数调用
int sendcommand(char str[256], char reply[256])
我已经尝试了许多变化,例如这样的:
char request[] = "help";
char response[];
int result = sendcommand(request, *response);
其实我已经做了一点C和C++,但由于某种原因,我错过了一些相当基本的东西。
试图调用C时,该功能没有任何真正的运气:简单的C函数调用
int sendcommand(char str[256], char reply[256])
我已经尝试了许多变化,例如这样的:
char request[] = "help";
char response[];
int result = sendcommand(request, *response);
其实我已经做了一点C和C++,但由于某种原因,我错过了一些相当基本的东西。
你可以看到你的电话是错误的,甚至不知道什么是正确的......
int sendcommand(char str[256], char reply[256])
两个具有相同签名的形式参数。
char request[] = "help";
char response[];
两个相同类型的实参。
那么,为什么你通过它们时使用不同的语法?
这还不是全部,这是错误这里当然,你需要有足够的尺寸返回值声明的响应参数。将其声明为为形式参数指定的大小是最安全的。
char request[] = "help";
char response[256];
int result = sendcommand(request, response);
伟大的东西家伙。这让我在80年代的Mac电脑上重新认识了Think C的一些日子。我不得不修复另一个小事,那就是将我的项目编译为C++。感谢帮助,虽然我觉得有点尴尬,要问一些如此微不足道的事情。 C/C++经过多年的Java/C#之后,就显得非常直观。 – 2011-12-29 03:05:53
response
是一个指针,但是您将它解除引用到char
,当该函数采用char*
时。
这应该工作:
int result = sendcommand(request, response);
+1,只要'响应'有一些空间分配给它。 'response'不是一个指针,它是一个数组。 – 2011-12-29 02:56:57
你得到了什么错误? – 2011-12-29 02:55:29
第二个帕尔姆是错的。 – 2011-12-29 02:59:23