C語言記憶體操作函式的實現

2021-08-20 05:25:55 字數 1177 閱讀 4151

>memcpy:

void *memcpy(void *dest,const void *source,size_t num);
(1)函式memcpy從source的位置開始向後複製num個位元組的資料到dest的記憶體位置。

(2)這個函式在遇到'\0'的時候並不會停下來。

(3)如果source和dest有任何的重疊,複製的結果都是未定義的。

void *my_memcpy(void *dest, const void *str, int size)

return dest;

}

適用於dest>source,如果dest>memmove:

void *memmove (void *dest,const char *str,int size);
(1)和memmove的差別就是memmove函式處理的源記憶體塊的目標記憶體塊是可以重疊的。

(2)如果源空間和目標空間出現重疊,就得使用memmove函式處理。

void *my_memmove(void *dest, const void *str, int size)

} else

} return dest;

}

>memcmp:

int memcmp(const void *str1,const void *str2,size_t num);
比較從str1和str2指標開始的num個位元組。

int my_memcmp(const void *str1, const void *str2, int size)

if (ret > 0)

printf("str1>str2\n");

else if(ret<0)

printf("str1>memchr:

void *memchr(const void *dest,int c,size_t count);

從dest區域所指記憶體的前count開始查詢字元c。

void *my_memchr(const void *dest, int c, int size)

return 0;

}

c語言記憶體操作函式

一 malloc calloc 名稱 malloc calloc 功能 動態記憶體分配函式 標頭檔案 include h 函式原形 void malloc size t size void calloc size t num,size t size 引數 size 分配記憶體塊的大小 num分配記憶...

C語言 記憶體操作函式

1.memset 函式 進行記憶體的設定 設定的數要在0 255的範圍內 讀取設定的記憶體時要按字元讀取,也就是ascii碼表示。include include intmain printf n return0 2.memcpy 函式 針對記憶體進行複製 include include intmai...

c語言中的記憶體操作函式

int arr 20 再定義並初始化的時候可以這樣操作 arr 20 不能這樣修改陣列的值。語法錯誤。int str 20 將一塊記憶體初始化乙個值 memset arr 0 sizeof arr 第乙個引數表示初始化位址,第二個引數表示初始化值,第三個引數表示初始化記憶體大小。memcpy arr...