記憶體操作函式

2021-08-31 09:45:14 字數 2010 閱讀 1432

記憶體操作函式

1、memset() 主要用於清0

/*#include void *memset(void *s, int c, size_t n);

功能:將s的記憶體區域的前n個位元組以引數c填入

引數: c:填充的字元,c雖然引數為int,但必須是unsigned char , 範圍為0~255

n:指定需要設定的大小

*/#include

#include

intmain()

;//處理一些**,把b內部的元素改了

//b[10] = ; //err

int i =0;

int n =

sizeof

(b)/

sizeof

(b[0])

;for

(i =

0; i < n; i++

)memset

(b,0

,sizeof

(b))

;char str[10]

;memset

(str,

'a',

sizeof

(str));

for(i =

0; i <

10; i++

)printf

("\n");

return0;

}int

main01

(int argc,

char

*argv)

2、memcpy() 不會因為』\0』就提前結束

/*

#include void *memcpy(void *dest, const void *src, size_t n);

引數: n:需要拷貝的位元組數

*/#include

#include

intmain()

;int b[10]

;//第3個引數是指拷貝記憶體的總大小

memcpy

(b, a,10*

sizeof

(int))

;memcpy

(b, a,

sizeof

(a))

;//使用memcpy()最好別出現記憶體重疊

//如果出現記憶體重疊,最好使用memmove

//memcpy(&a[2], a, 5*sizeof(int) ); //err

memmove

(&a[2]

, a,5*

sizeof

(int))

;return0;

}int

main01

(int argc,

char

*argv)

memmove()

memmove()功能用法和memcpy()一樣,區別在於:dest和src所指的記憶體空間重疊時,memmove()仍然能處理,不過執行效率比memcpy()低些。

memcmp()

/*

#include int memcmp(const void *s1, const void *s2, size_t n);

功能:比較s1和s2所指向記憶體區域的前n個位元組

引數: n:需比較的前n個位元組

返回值:

相等:=0

大於:>0

小於:<0

*/#include

#include

intmain

(int argc,

char

*argv)

;int b[10]

=;int flag =

memcmp

(a, b,10*

sizeof

(int))

;if(flag <0)

else

if(flag >0)

else

return0;

}

記憶體操作函式

calloc 配置記憶體空間 相關函式 malloc,free,realloc,brk 表頭檔案 include 定義函式 void calloc size t nmemb,size t size 函式說明 calloc 用來配置nmemb個相鄰的記憶體單位,每一單位的大小為size,並返回指向第乙...

記憶體操作函式 malloc

函式 malloc void malloc size t size 在記憶體塊獲取區塊。標頭檔案 malloc.h 返回值 如果分配成功則返回指向被分配記憶體的指標 此儲存區中的初始值不確定 否則返回空指標null。記憶體釋放 當記憶體不再使用時,應使用free 函式將記憶體塊釋放。函式返回的指標一...

記憶體操作函式 realloc

realloc原型是 void realloc void mem address,unsigned int newsize 標頭檔案 stdlib.h和malloc.h 功能 先判斷當前的指標是否有足夠的連續空間,如果有,擴大mem address指向的位址,並且將mem address返回,如果空...