關於記憶體分配的幾個例子

2022-08-03 05:48:09 字數 923 閱讀 8312

1. 

#include #include #include void getmemory(char *p);

void test();

int main()

void getmemory( char *p )

void test( void )

分析:

在vs2010上編譯可以通過,但是不能執行。

個人理解:

執行getmemory()時,p是str的乙個副本。雖然分配的空間沒有被銷毀,但是getmemory只是讓p指向分配好的空間,而沒有讓test中的str也指向malloc分配的記憶體

所以不能執行。

test中,str初始化為null(不再是野指標了),因此,strcpy可以通過編譯。

2.

#include #include #include void getmemory(char *p);

void test();

int main()

char *getmemory( void )

void test( void )

結果:編譯通過,執行時輸出隨機值

原因:p為區域性變數,函式執行完時被銷毀。

注:函式執行完時,

3.

#include #include #include char *tmp;

void getmemory(char *p);

void test();

int main()

char *getmemory( void )

void test( void )

編譯執行均沒有問題,可以輸出helloworld

「hello world」在靜態去

getmemory將它的位址返回了。

4. 

06 5 關於指標的幾個例子

1 實現乙個方法 多個返回值 的效果 返回數字的個位 十位 百位。基於本程式的一些基本的c語法 為取餘運算子,用於把它前面的整數值或表示式除以 其後面的整數值或表示式,結果為不能被後面的整數或表達 式整除的最小整數,它後面的數值應該為大於1的正整數。如 表中所示的 13 7 就表示13 除以7餘6。...

EnumSet的幾個例子

enumset 是乙個與列舉型別一起使用的專用 set 實現。列舉set中所有元素都必須來自單個列舉型別 即必須是同型別,且該型別是enum的子類 列舉型別在建立 set 時顯式或隱式地指定。列舉 set 在內部表示為位向量。此表示形式非常緊湊且高效。此類的空間和時間效能應該很好,足以用作傳統上基於...

關於遞迴演算法的幾個例子(C語言)

1.遞迴演算法的定義 2.遞迴與迭代的優劣 eg1 斐波那契數列 斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 2...