c语言程序报错 如何解决?

作者站长头像
站长
· 阅读数 6
#include <stdio.h>


char * showString()
{
    char src[] = { 0x6D , 0x32 , 0x3E , 0x85 , 0xF7 , 0xEA , 0x92 , 0xB1 };
    char keys[] = { 0x35, 0x1F, 0x7F, 0xF7, 0x90, 0x9F, 0xE1, 0xB1, 0xC9 ,
                    0x79, 0x13, 0xA2, 0x20, 0xF9, 0x82, 0x9F, 0xD6, 0x7F ,
                    0x71, 0xD6, 0xE, 0xFD, 0xC9, 0x21, 0xA0, 0x5C, 0x70,
                    0x51, 0x81, 0xF9, 0xED, 0x95, 0xC4, 0x54, 0x73, 0x1E,
                    0x87, 0xE0, 0x9F, 0xC9, 0x70, 0xE4, 0xF9, 0x10, 0x71,
                    3, 0xD3, 0xC9, 0x7E, 0xE4, 0xBB, 0x60 };

    for (int i = 0; i < sizeof(src); i++) {
        src[i] ^= keys[i & 7];
    }

    return src;
}

int main() {
    char *result;
    //这里赋值的时候运行报错了
    result=showString();
    printf(result);

    return 0;
}

运行没打印数据 直接断了,在不改变函数返回值的类型的情况下,我那个赋值如何修改才不会报错 打印出字符串结果呢?

回复
1个回答
avatar
test
2024-07-09

你返回了一个局部变量的地址。返回之后变量消失了,就打印不了。

你可以把 src 改成全局变量。

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容