【发布时间】:2011-05-18 04:27:52
【问题描述】:
我正在尝试调用接口函数并打印出结果值。函数原型包含指向字符串的指针作为参数。当我打印出结果值时,我收到了一些奇怪的符号。我下面的方法正确吗?
int interfacecall(char *a, char *b ...);
char * a= "Testdata";
char b [4098];
result= interfacecall(a,b);
//different value is returned in b via function implementation in a third party dll.
printf(b);
【问题讨论】:
-
好吧,为此我们需要知道
interfacecall实际做了什么... -
interfacecall是做什么的?另外,试试char a[] = "Testdata"; -
另外,
char * a = "literal"已被弃用,请使用const char* a = "literal"或char a[] = "literal"。 -
@Xeo:您有关于将字符串文字地址不推荐地分配给指向 char 的指针的参考吗?或者您的意思是它在
C++中已被弃用?我相信如果您尝试将字符串文字(const char []类型)分配给指向 char 的指针(char *)在C中,所有C++编译器都必须抱怨,字符串文字的类型为@987654333 @. -
@pmg: 嗯,忽略了那个 lil
c标签......那么,我的最后一条评论只适用于C++:)