1樓:匿名使用者
malloc是申請一塊記憶體空間,50是這塊空間的大小。
這段**會申請大量size為50的記憶體直到申請失敗,並在結束的時候沒有釋放申請的記憶體,肯定會造成記憶體洩露。
記憶體洩漏也稱作「儲存滲漏」,用動態儲存分配函式動態開闢的空間,在使用完畢後未釋放,結果導致一直佔據該記憶體單元。直到程式結束。即所謂記憶體洩漏。
2樓:
malloc是記憶體申請函式,它的原型是
void *malloc(size_t size);
這裡就是以每次50位元組地一直向計算機申請記憶體,因為沒有把之前申請的記憶體釋放,所以最後會耗盡計算機的記憶體,發生錯誤,這就是記憶體洩露了。
不過,這個程式你拿去執行不一定會報錯的,因為現在計算機的記憶體實在是太大了。
3樓:匿名使用者
malloc(50)表示分配50個位元組的記憶體空間
這段**會一直執行while迴圈知道記憶體不足一再分配50個位元組的空間。
最後可能會發生記憶體洩露
4樓:
int main(void)
這樣就一直在記憶體分配地址空間,而沒有釋放過,很快就會掛的,也就是記憶體洩漏了。
5樓:匿名使用者
如果分配50位元組的空間成功就什麼都不執行,繼續迴圈,繼續分配,不成功返回0,程式結束。
記憶體不夠
6樓:匿名使用者
雖然是記憶體洩漏了,但是一旦你的程式退出,系統會**掉的!!
7樓:匿名使用者
malloc 向系統申請分配指定size個位元組的記憶體空間。
記憶體洩露是:在電腦科學中,記憶體洩漏指由於疏忽或錯誤造成程式未能釋放已經不再使用的記憶體的情況。記憶體洩漏並非指記憶體在物理上的消失,而是應用程式分配某段記憶體後,由於設計錯誤,失去了對該段記憶體的控制,因而造成了記憶體的浪費。
通常我們所說的記憶體洩漏是指堆記憶體的洩漏。堆記憶體是指程式從堆中分配的,大小任意的(記憶體塊的大小可以在程式執行期決定),使用完後必須顯示釋放的記憶體。應用程式一般使用malloc,realloc,new等函式從堆中分配到一塊記憶體,使用完後,程式必須負責相應的呼叫free或delete釋放該記憶體塊,否則,這塊記憶體就不能被再次使用,我們就說這塊記憶體洩漏了 。
這段**你明白這些問題,也就懂了。
8樓:夜遊神小翠
分開來說:
malloc()即記憶體動態分配的函式,原型:extern void *malloc(unsigned int num_bytes); 函式的引數是一個無符號整型值,單位是位元組。malloc(50)就是分配連續的50位元組的記憶體空間給使用者,這部分記憶體空間存在於記憶體中的堆裡(使用者需要自己分配,使用後要自己釋放的區域)。
如果malloc函式執行成功,即分配到了記憶體,則返回一個非空的指標;否則返回空(null);
while迴圈,括號內的稱為迴圈條件,當此條件為真時,迴圈繼續;否則跳出。
將兩者結合到一起,就是當malloc函式執行成功時(分配到了記憶體),迴圈繼續;否則(沒有分配到記憶體,表明已經沒有足夠的記憶體空間可以使用)迴圈跳出。
不管記憶體多大,這麼寫程式總會結束。記憶體一直被使用者分配走,卻沒有還回,總有記憶體耗盡的時候。當記憶體不足以分配50位元組的連續空間時,while迴圈就結束了。主函式返回。
記憶體洩露即使用者使用malloc函式或者new關鍵字分配了記憶體,卻沒有用free函式或者delete關鍵字對其進行釋放,導致記憶體被程式佔用,作業系統不能對其進行分配,其他程式不能使用。
ps:可以看看malloc/free函式的使用講解。
c語言中的「code」是什麼意思啊
9樓:八哥說科技
code是keil c51裡面的關鍵字,一般用於定義常量陣列,意思是告訴編譯說把這個陣列放在rom儲存。
code的作用是告訴微控制器,定義的資料要放在rom(程式儲存區)裡面,寫入後就不能再更改。因為c語言中沒辦法詳細描述存入的是rom還是ram(暫存器),所以在軟體中新增了這一個語句起到代替彙編指令的作用,對應的還有data是存入ram的意思。
程式可以簡單的分為code(程式)區,和data (資料)區,code區在執行的時候是不可以更改的,data區放全域性變數和臨時變數,是要不斷的改變的,cpu從code區讀取指令,對data區的資料進行運算處理。
10樓:屠新曾芷文
這裡可能指p-code稱偽**.
如果擁有
visual
basic
的專業版或企業版,既可以將**編譯成標準的visual
basic
偽**格式,也可以編譯成本機**格式。本機**編譯提供了偽**編譯所沒有的關於優化和除錯的幾個選項。
p-code
或偽**,是介於
basic
程式中的高階指令和計算機處理器執行的低階本機**之間的一種中間步驟。在執行時刻,visual
basic
將每一句偽**轉換成本機**。如果將程式直接編譯成本機**,則取消了偽**這一中間步驟。
11樓:刑儒澹臺英銳
validation
code
這個的中文意思是:
驗證碼如果你是在安裝軟體,就是要你輸入難證碼如果是在網頁中註冊,可能是有一個圖形,裡面有字母或數字,要你將它填入指定的空格,說明你是真人,不是機器
12樓:匿名使用者
微控制器c語言中的code
code:程式儲存區。
data:固定指前面0x00-0x7f的128個ram,可以用acc直接讀寫的,速度最快,生成的**也最小。
idata:固定指前面0x00-0xff的256個ram,其中前128和data的128完全相同,只是因為訪問的方式不同。idata是用類似c中的指標方式訪問的。
彙編中的語句為:mox acc,@rx.(不重要的補充:
c中idata做指標式的訪問效果很好)
xdata:外部擴充套件ram,一般指外部0x0000-0xffff空間,用dptr訪問。
pdata:外部擴充套件ram的低256個位元組,地址出現在a0-a7的上時讀寫,用movx acc,@rx讀寫。這個比較特殊,而且c51好象有對此bug,建議少用。
13樓:匿名使用者
用 code 定義的變數儲存在程式儲存區,例如:unsigede int code a=100;,而用const 定義的變數儲存在資料儲存區,例如:const unsigned int a=100;。
c語言中 char code *s 是什麼意思
14樓:匿名使用者
程式可以簡單的分為code(程式)區,和data (資料)區,code區在執行的時候是不可以更改的,data區放全域性變數和臨時變數,是要不斷的改變的,cpu從code區讀取指令,對data區的資料進行運算處理。
code的作用是告訴微控制器,我定義的資料要放在rom(程式儲存區)裡面,寫入後就不能再更改。
所以說,
char code *s
就是定義在rom區的一個字元指標s
微控制器c語言uchar code table[]問題
15樓:匿名使用者
不可以修改,因為code表存在rom中.
可以通過迴圈判斷指標來處理.
unsigned char i,n=0;
while(1)
n++delay();//延時}
微控制器c語言uchar code的問題
16樓:匿名使用者
一個括號表示一維陣列,兩個括號表示二維陣列~
code關鍵字表示放在code區。
17樓:匿名使用者
一組表示一維陣列,二組是二維陣列
codeblocks編寫c語言時遇到問題(如圖),**等!
18樓:擁雲莊主
開啟工作管理員,看下lcq.exe是不是已經在執行了,如果是,結束它,再重新編譯。
在c語言中,「code」如何使用?
19樓:匿名使用者
你應當註明
抄是c51,否則會襲誤導很多計算機的朋友。
看你想實現什麼樣的功能。
unsigned char code table;
分配一個指向code區的指標,指標本身在預設儲存區。
code unsigned char table;
分配一個指向預設儲存區的指標,指標本身在code區。
keil的說明書裡面都寫得非常明白。
C語言中的問題,c語言中 p , p 的問題
講一下vc6.0的流程 1.a 0 前置自減運算子先運算,結果使a 02.a a 0 後置運算子在表示式中先使用,後運算,所以a 的值還是0 3.0 a 0 後置運算子在表示式中先使用,後運算,所以a 的值還是0 4.0 a 0 1 1 前置運算子先運算,結果使a變為1 所以結果sum 1 運算後,...
c語言中的define的問題,c語言中的一個 define的問題
很正常的,簡單的說,是為了之後 中使用 ifdef aodv local repair 或者 ifndef aodv local repair等等。badganker兄說的對的,看過mfc的程式你就發現標頭檔案一開頭一大串這個。除此還有其他作用,你做過正規大點的專案開發就知道了 不但檔案裡 defi...
C語言中函式呼叫問題,C語言中函式的呼叫
首先我們來說一下,你這個程式是有很大的問題的。函式有且只有唯一一個返回值,當程式執行到return的時候,這個函式就結束並返回了。所以,你這裡寫2個return來返回最大值和最小值是不可能的。再者,如果你想使用返回值作為最大值,最小值的傳遞,那麼在main函式中,你呼叫star函式的時候需要一個變數...