我想知道是否可以从 c 中的主函数返回一个指针地址。这是一个非常简短的例子:
int main(){
int i = 0;
return &i; //won't work because of type difference and because i..
} //.. will be deallocated.
那么有没有办法做到这一点呢? 第二:我想这样做是为了将堆对象从一个程序返回到另一个程序..
如果被调用的程序在 main() 上终止但在从 main 启动的第二个线程上继续运行,是否有可能使堆对象保持事件状态?
提前致谢!
最佳答案
简而言之,答案是否定的。
main()
的返回值通常用于错误代码。在流程结束后要保持持久性的数据应该以其他方式进行通信。当您从 main()
返回时,您的进程(及其所有线程)已经结束。操作系统为进程分配的内存空间也被释放了。这包括您的堆内存。总之,进程一结束,堆就没有了,你在堆里的对象就没有了。
你似乎发现了进程间通信的难处。有许多可能的技术允许一个进程与另一个进程通信。 一些是
- 将数据存储到文件
- pipes
- message passing interface (初级产业部)
- shared memory
有些技术更适合不同的情况,这就是为什么有多种选择。
关于c - 从 main 返回指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35187707/