C語言中動態內存分佈

好久都沒用C語言了,隨便整整結果就出錯了(不太容易發現的錯誤),很多初學者容易忽略的問題

#include<stdio.h>
#include<stdlib.h>
voidTest(int *pArr,intcount);

voidmain()
{
 int A[10]={0};
  for (inti=0; i<10; i++)
{
    A[i] =i+1;  }
   Test(A, 10);
    for(i=0; i<10; i++)
 {
 printf("%3d",A[i], 10);  }
}
  voidTest(int *pArr,intcount)
{     pArr = (int *)malloc(sizeof(int)*10);
     for(inti=0; i<count; i++)
 {    printf("%4d",*pArr++);}
}
危險!!(只分配未釋放,內存會被耗盡的)

總結:
*動態存儲空間最多是用於字符串的操作。
*malloc一般和strlen()相結合使用。
*malloc一定要和free匹配出現,一一對應!
*不能學尼采,“尼采曾經自詡是太陽,指給予,不取得”,我們內存分配完必須記得釋放!!!



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章