我正在尝试打印函数返回的char指针,但是输出总是乱码。
我尝试将函数类型更改为char [],但这会出错。 我也尝试过将char []强制转换为char *,但这会导致堆栈损坏。我注意到,如果将变量'b'打印在return语句之前的函数中,则它将正确显示。
#include <stdio.h>
#include <string.h>
char *the()
{
char a[100] = "Ace of Spades";
char * b = &a[0];
return b;
}
int main(void)
{
printf("%s\n", the());
}