c的存储空间的问题.

问题遇到的现象和发生背景

c的存储空间的问题

问题相关代码,请勿粘贴截图

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char *testMemory(char *bb);

int main() {

char a[10] = "sdsdsa";

printf("main a :%p\n",a);

printf("%s", testMemory(a));

}

char * testMemory(char *bb) {

printf("testMemory bb:%p\n",bb);

char *a = bb;

return a;

}

运行结果及报错内容

$ ./mains
sdsdsa%

我的疑问

testMemory 返回后 为什么不会把栈区内存a 销毁.

通过Testmemory 传进来的实参 是main分配在栈空间的内存地址, testmemory 返回不应该释放实参即栈空间的地址吗

我想要达到的结果

因为你正在用它的返回值啊,
只要外部还保留它的强引用,它就不可能会自动销毁,除非你手动写销毁的代码

变量确实销毁了,但是内存中的值没有销毁,而是通过返回一个指针指向这块内存