从main返回指针

Hei*_* Zi 2 c pointers function

我想知道是否可以从c中的main函数返回指针地址.这是一个很短的例子:

int main(){
  int i = 0;
  return &i; //won't work because of type difference and because i..
}            //.. will be deallocated.
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?第二:我想这样做是为了将堆对象从一个程序返回到另一个程序.

如果被调用的程序在main()上终止但是继续在从main启动的第二个线程上运行,是否可以使堆对象保持活动状态?

提前致谢!

e0k*_*e0k 6

简而言之,答案是否定的.

返回值main()通常用于错误代码.在流程结束后要保持持久的数据应以其他方式传达.当您返回时main(),您的进程(及其所有线程)已结束.操作系统为进程分配的内存空间也已被释放.这包括你的堆内存.简而言之,一旦进程结束,就没有堆,并且堆中的对象消失了.

您似乎发现了进程间通信的难度.有许多可能的技术允许一个进程与另一个进程通信. 其中一些

有些技术更适合不同的情况,这就是为什么有多种选择.