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

#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.5k
1 个回答

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏