我正在尝试调用接口(interface)函数并打印出结果值。函数原型(prototype)包含指向字符串的指针作为参数。当我打印出结果值时,我收到一些奇怪的符号。我的以下方法是否正确?
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);
最佳答案
你的 printf 不是那么安全。应该是:
printf("%s", b); //corrected - safe!
在 C++ 中,您还可以将 std::cout
用作:
std::cout << b; //its simpler - must include<iostream>
确保 b
是一个以 null 结尾的 c 字符串,否则它会打印出垃圾信息并可能使您的程序崩溃。以 Null 结尾的字符串意味着它必须以 \0
结尾。像这样:
b[slen] = '\0'; //you may have to do this explicitly!
关于c++ - 打印出字符串指针中获取的数据时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6039867/