#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;
}
运行没打印数据 直接断了,在不改变函数返回值的类型的情况下,我那个赋值如何修改才不会报错 打印出字符串结果呢?
你返回了一个局部变量的地址。返回之后变量消失了,就打印不了。
你可以把 src 改成全局变量。