如何將動態分配的內存作爲全局內存位置? #include <stdio.h>
#include <string.h>
char* call(int);
char *y;
int main() {
char *a;
int x;
x=45;
a=call(x); \\ I guess it must be pointing to the Memory
我正在寫這段代碼,以學習如何正確處理文件和字符串。我已成功管理讀取和寫入文件的部分內容,但在刪除列表中的所有元素的同時堆疊了一段時間。 問題是,刪除列表中的所有元素後,我試圖使用函數printAll,它不會停止,因爲它應該發生,我不明白問題在哪裏。可能你們中的一些人可以睜開眼睛看看這個bug並幫助解決它。 所以,這個代碼是實現一個名爲Unit單鏈表類,其中的變量是字符串的字符串和向量: class
可能重複: How does delete work in C++? C programming : How does free know how much to free? 對於每一個動態內存分配,使用 '的malloc /新',我們有方法, '自由/刪除' 釋放所分配的內存。 我的問題是,如果內存分配大小在運行時降低並且內存位置不連續,這些內存釋放方法如何知道要釋放多少內存以及要清除的內存位置
只是出於好奇,是以下法律? X* p = static_cast<X*>(operator new[](3 * sizeof(X)));
new(p + 0) X();
new(p + 1) X();
new(p + 2) X();
delete[] p; // Am I allowed to use delete[] here? Or is it undefined behavior?