c - 从 main 返回指针

标签 c function pointers

我想知道是否可以从 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() 返回时,您的进程(及其所有线程)已经结束。操作系统为进程分配的内存空间也被释放了。这包括您的堆内存。总之,进程一结束,堆就没有了,你在堆里的对象就没有了。

你似乎发现了进程间通信的难处。有许多可能的技术允许一个进程与另一个进程通信。 一些

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

关于c - 从 main 返回指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35187707/

相关文章:

javascript - 无论如何要用 "default function"创建 Javascript 对象? AngularJS

pointers - 如何将 Rust 结构的引用/指针传递给 C ffi 接口(interface)?

C++:strchr() 上的指针分配警告

c - 编写 linux 守护进程

c++ - if-else 语句中的 "equal to"与 "not equal to"运算符

c - 如何从文件中删除记录

php - 在函数内使用循环

c - C 中与网络相关的低级软件的读物、工具和库

C++:指向不同函数的成员函数指针数组

c++ - 为什么大于 128 的对齐会表现得很奇怪?