void *memcpy(void *dest,void *src, unsigned int
count)
int swapdata(void *x, void *y, int size)
//memcpy(void *__dst, const void *__src, size_t __n)
//memcpy功能:由src所指記憶體區域複製n個位元組到dst所指記憶體區域
//⚠️src和dst所指記憶體區域不能重疊,函式返回指向dst的指標
/* //以下示例返回資料a='\0', b='a',因為在操作memcpy(x, y, size)時,由於兩個資料均為1個位元組並且在記憶體中一般是
//連續的,但是分配了2個位元組,導致src和dst記憶體區域重疊了,如果在a和b之間加乙個資料string str = "abcde",
//輸出就正常了,因為給a、b各分配2個位元組就不會重疊了;正常情況應該使用swapdata(&a, &b, 1);
//size應該為待交換資料的大小,而不能隨意指定
char a = 'a';
char b = 'b';
swapdata(&a, &b, 2);
*/memcpy(tmp, x, size);
memcpy(x, y, size);
memcpy(y, tmp, size);
free(tmp);
return
0;}
int main(int argc, const
char * argv)
swapdata(&a, &b, 2)的輸出結果異常分析:關鍵在於函式
memcpy
中的引數src和dst所指記憶體區域不能重疊當傳入的size和資料大小不一致時,會發生意想不到的情況
C 泛型 使用泛型List
一 泛型的優點 效能高。從前面的例子可以看出使用不需進行型別轉換,可以避免裝箱和拆箱操作,提高效能。型別安全。泛型集合對其儲存物件進行了型別約束,不是定義時宣告的型別,是無法儲存到泛型集合中的,保證了資料型別的安全。重用。使用泛型型別可以最大限度地重用 保護型別的安全以及提高效能。使用泛型 使用泛型...
C 泛型 使用泛型List
一 泛型的優點 效能高。從前面的例子可以看出使用不需進行型別轉換,可以避免裝箱和拆箱操作,提高效能。型別安全。泛型集合對其儲存物件進行了型別約束,不是定義時宣告的型別,是無法儲存到泛型集合中的,保證了資料型別的安全。重用。使用泛型型別可以最大限度地重用 保護型別的安全以及提高效能。使用泛型 使用泛型...
泛型結構使用大全(泛型類 泛型介面)
1 泛型類可能有多個引數,此時應將多個引數一起放到尖括號內,比如 2 泛型類的構造器如下 public genericclass 錯誤示例 public genericclass 3 例項化後,操作原來泛型位置的結構必須與指定的泛型型別一致。4 泛型不同的引用不能互相賦值。儘管在編譯時arrayli...