C語言中的深拷貝和淺拷貝

2021-09-08 01:18:53 字數 505 閱讀 6832

//

c語言中的深拷貝和淺拷貝

#define _crt_secure_no_warnings#include

#include

#include

typedef

struct

_studentstudent;

void

main()

//錯誤**

/*if (s2.title != null)

*///

要想實現深拷貝,那麼必須給s2.title也分配一段記憶體空間,

//然後通過strcpy()將s2.title指向的字串複製到s2.title指向的記憶體空間內

//由此證明,結構體之間的賦值(s2 = s1;),是進行了結構體內部所有資料的拷貝,

//如上s1.name的位址s2.name的位址不同,說明是把s1.name中的資料複製到了s2.name中

system("

pause");

}

C語言中深拷貝和淺拷貝

1 淺拷貝指的是多個指標指向同一段記憶體 比如字串常量,字串常量在乙個工程中,不管定義多少次,在記憶體只有乙份,它屬於淺拷貝。下面就舉乙個淺拷貝的例子 定義乙個陣列buf,從鍵盤輸入三個字串,並將其拷貝到陣列arr中。它輸出的是三個第三次輸入的,而沒有輸出前兩次輸入的,分析一下原因 其中的buf相當...

C語言 淺拷貝和深拷貝

淺拷貝 首先看下面這段 include include include typedef struct node 定義了乙個結構體 s node int main 執行結果為 node2 node1 僅僅完成淺拷貝 僅會將結構體變數的size,data儲存的值給node2 data指向的空間以及其儲存...

C 淺拷貝和深拷貝

class test test const test t val new int t.val test private int val 現在定義兩個物件,test t1 9 test t2 t1 如果你不提供copy建構函式 注釋掉的那個 那麼t1和t2的成員 val指向同乙個物件,當析構的時候,同...