当我们声明任何变量时,特别是在C/C++中,它会根据其数据类型(也是机器)在计算机内存中分配。我的问题是,当我们在在线IDE中运行程序时,我的PC /机器的内存是否被使用?在线编译器对计算机内存的影响
这个问题是更多的使用C动态分配内存此事的意思,因为,无论出于何种原因,如果我们滥用在像malloc()
,calloc()
功能,特别是free()
参数的指针,有可能是电脑的内存被损坏在一定程度上(内存泄漏)。因此,如果在线编译不使用计算机内存,那么我可以在联机IDE上使用这些函数,但我不知道是什么情况。它安全吗?
即使您在本地运行该程序,计算机的内存也不会受到“损害”。内存泄漏只是意味着,如果你调用'malloc' *很多'free',那么调用最终会失败。就这样。一旦程序终止,操作系统会重新整理并释放程序正在使用的所有内存。 –
这是C的摘录:Schildt的完整引用。 'free()'函数将ptr指向的内存返回给堆。这使内存可供未来分配。 必须使用先前使用动态分配系统函数之一分配的指针调用free()。在调用中使用无效指针很可能会破坏内存管理机制,并可能导致系统崩溃。如果你传递一个空指针,'free()'不执行任何操作。 – Buddhist
是的,但如果你运行任何现代操作系统,如Linux或Windows或OSX,整个堆在虚拟内存中,当程序终止时会回收它。每个程序都有自己的堆,不会对彼此造成任何损害。 –