同一个地址被当做%s读取后产生不同字符串

img


为什么会产生这样的现象,以及如何把321在main函数里输出出来 不用看its函数里的一堆 只用看its函数的倒数两行和主函数就好了

char b是函数内变量,函数返回值指针指向地址未知。
改用 char *b = (char*)calloc(5,sizeof(char)); 或者通过参数传入字符数组

函数返回的是局部变量的地址!局部变量的内存在函数结束后会被释放掉,所以上述代码返回的数组起始地址也没有意义了,因为即使你给了我地址,我也找不到地址原本指向的东西了。

return的只是一个指针,主函数里没有字符串的内容啊