c語言的memset函數

該說的二樓已經說很清楚了,我補充一點,就是這個函數常用來在malloc後,將這段內存空間清空(如置0),以防在使用時(尤其是字元串)讀出內存的隨機值。

⑵ C語言 memset函數

#include<stdio.h>
#include<string.h>
void pr( char * );
int main()
{
char xx[11],*a,yy[21],*b;

// 數組初始化,用字元串結束符:'\0'
memset(xx,'\0',sizeof(xx));
a=(char *)memset(xx,'1',sizeof(xx)-1);
pr(a);

memset(yy,'\0',sizeof(yy));
b=(char *)memset(yy,'a',sizeof(yy)-1);
pr(b);

return 0;
}
void pr( char *ss )
{
int i;
for(i=0;i<strlen(ss);i++)
{
printf("%c ",ss[i]);
}
putchar('\n');
}

⑶ c語言函數中的memset()是怎麼用的

j=0;是一句初始化語句,在int
j;聲明變數後變數的值是未知的,所以要在使用前賦初值。
memset(word,0,21);這個函數第一參數是一個指針,指向目標內存的首地址,第二個參數是你要賦給指定內存塊中各個位元組的值。第三個參數是被操作內存塊的位元組數。連在一起這個語句的意思是,從word指向的內存地址開始的21個位元組的內存,賦成0。其實也是一個初始化操作。

⑷ C語言中,使用一個結構體之前,要用memset把各個位清零

這是在對結構體進行初始化,下面是對memset的詳細解釋:
原型: void *memset(void *s,int ch,size_t n);
頭文件:#include<string.h>
作用:將s所指向的某一塊內存中的每個位元組的內容全部設置為ch指定的ASCII值, 塊的大小由第三個參數指定,該函數通常為新申請的內存做初始化工作, 其返回值為指向s的指針。,它是對較大的結構體或數組進行清零操作的一種最快方法。

⑸ 在C語言中函數memset()是干什麼用的

顧名思義~~memset=memory set~~~設置內存的~~~具體的用法查一下MSDN就知道了~~

⑹ C語言中memcpy函數用法

Visual C++把memcpy和memmove實現的一樣,即不用擔心覆蓋的問題,這個可以看VC安裝目錄里的crt源碼得知。

至於gcc,沒有看過glibc的源碼。