vs中,c程序,puts()明明地址相同,在主程序中却输出乱码

vs中,c程序,puts()明明地址相同,在主程序中却输出乱码

#include
#include
#define LEN 10
char* fanxu(char* yuan);
int main(void)
{
    char yuan[LEN];
    char* jiance;
    puts("请输入一个字符串(必须小于等于9个字符)");
again:
    while (gets_s(yuan, LEN))
    {
        jiance = fanxu(yuan);
        printf("%p\n", jiance);
        puts(jiance);
        puts("是否继续输入,输入q退出,输入其他继续");
        if (getchar() != 'q')
        {
            while (getchar() != '\n')
                continue;
            puts("程序继续,请按要求继续输入");
            goto again;
        }
        else
            puts("程序结束");
        break;
    }
    return 0;
}
char* fanxu(char* yuan)
{
    char fanxu[LEN];
    int i;
    for (i = 0; i < strlen(yuan); i++)
        fanxu[i] = yuan[strlen(yuan) - 1 - i];
    fanxu[strlen(yuan)] = '\0';
    printf("%p\n", fanxu);
    puts(fanxu);
    return fanxu;
}

img

这只能说明 首地址是相同的,不能说明他们指向的数据是一样的

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^