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个回答
test
2024-07-09
你返回了一个局部变量的地址。返回之后变量消失了,就打印不了。
你可以把 src 改成全局变量。
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容