【发布时间】:2021-09-20 14:35:55
【问题描述】:
有一个char指针变量,它的值来自一个函数。
char* apple = ....(function call)
我想打印如下:
int len = strlen(apple);
for(i=0;i<len;i++){
printf("%c ", apple[i]);
}
但在控制台中,它会在一个框中给出一个问号作为输出。我该怎么办,我应该如何打印?谢谢。
【问题讨论】:
-
欢迎您!请说明您如何初始化
cigar以及它指向的任何内容,以及len的来源。最好发布Minimal Reproducible Example,最短的完整 代码,显示您尝试过的内容。最好的方法是复制/粘贴,在您检查它确实表现出所描述的行为之后。 -
仍然没有足够的信息,但我猜测:请参阅Function returning address of local variable error in C。当函数返回时,局部变量不复存在,所以现在指向的是不确定的。
-
欢迎使用sof,当你展示调用函数或一些简单的例子时,你可能会得到更多的答案
-
@İlknur Baş - 为什么您认为 方框中的问号 不正确?
-
仅供参考,大多数系统为没有图形表示的字符打印问号,例如 ASCII 值低于 32 或高于 127,或不受支持的 Unicode 字符.如果函数返回指向缓冲区的指针而不包含非 ASCII(即二进制)数据,则可能是这种情况。