1)名稱:memset()函數
2)別稱:char型初始化函數
3)功能: 將s所指向的某一塊內存中的每個字節的內容全部設置為ch指定的ASCII值,塊的大小由第三個參數指定,這個函數通常為新申請的內存做初始化工作
4)用法: void *memset(void *s, char ch, unsigned n);
5)作用:在一段內存塊中填充某個給定的值,它是對較大的結構體或數組進行清零操作的一種最快方法。
6)代碼示例:
#include
#include
#include
int main(void)
{
char buffer[] = "Hello world/n";
printf("Buffer before memset: %s/n", buffer);
memset(buffer, '*', strlen(buffer) );
printf("Buffer after memset: %s/n", buffer);
return 0;
}
輸出結果:
Buffer before memset: Hello world
Buffer after memset: ***********
7)memset()的深刻內涵:用來對一段內存空間全部設置為某個字符,一般用在對定義的字符串進行初始化為‘memset(a, '/0', sizeof(a));memcpy用來做內存拷貝,你可以拿它拷貝任何數據類型的對象,可以指定拷貝的數據長度;例:char a[100],b[50]; memcpy(b, a, sizeof(b));注意如用sizeof(a),會造成b的內存地址溢出。strcpy就只能拷貝字符串了,它遇到'/0'就結束拷貝;例:char a[100],b[50];strcpy(a,b);如用strcpy(b,a),要注意a中的字符串長度(第一個‘/0’之前)是否超過50位,如超過,則會造成b的內存地址溢出。
參考文獻:搜狗百科,c語言專欄