在C/C++中是否有一個函數可以擺脫非動態數據,類似於動態分配內存的函數free();
。在C++中釋放非動態內存
我嘗試使用功能free(i);
但是編譯器報錯:
invalid conversion from 'int' to 'void*' [-fpermissive]
在下面的代碼我用free(&i);
,編譯器沒有報告錯誤,但也並沒有釋放內存。
#include<iostream>
#include<stdlib.h>
int main()
{
int i, n;
cin >> n;
for(i = 0; i < n; i++);
cout << i << endl;
free(&i);
cout << i << endl;
return 0;
}
對於輸入15
輸出是:
15
15
Process returned 0 (0x0) execution time : 11.068 s
Press any key to continue.
而且我從編譯器得到了一個警告:
warning: attempt to free a non-heap object 'i' [-Wfree-nonheap-object]