當前位置:首頁 » 編程語言 » c語言中的memset

c語言中的memset

發布時間: 2022-06-13 06:12:29

c語言里 memset和sizeof是什麼意思

memset是個函數,它在string.h頭文件中有聲明。
它有三個參數,一是所要set的首地址,二是set的值,三是set的位元組數,
num肯定是個數組,因為數組在傳參時能自動轉成指向數組的首元素的指針,
如果不是數組,應該寫成memset(&num, 0, sizeof(num));

Ⅱ C語言中,memset函數都可以給什麼類型的數組清零

任何類型的數組都可以,實際上memset函數是對某一個地址以及該地址之後的一串空間進行賦值操作,只要是地址值,都可以被賦值。
1、memset是計算機中C/C++語言函數。將s所指向的某一塊內存中的前n個 位元組的內容全部設置為ch指定的ASCII值, 第二個值為指定的內存地址,塊的大小由第三個參數指定,這個函數通常為新申請的內存做初始化工作, 其返回值為指向s的指針。
2、函數介紹:void *memset(void *s, int ch, size_t n);
函數解釋:將s中前n個位元組 (typedef unsigned int size_t )用 ch 替換並返回 s 。
memset:作用是在一段內存塊中填充某個給定的值,它是對較大的結構體或數組進行清零操作的一種最快方法。

Ⅲ 求助,C語言中函數memset(),memcpy()和strchr()的功能和用法

memset函數用來對一段內存空間全部設置為某個字元,常用於內存空間初始化。將已開辟內存空間
s
的首
n
個位元組的值設為值
c

下面是一個例子
#include
<stdio.h>
#include
<string.h>
main(){

char
*s="Golden
Global
View";

clrscr();

memset(s,'G',6);

printf("%s",s);

getchar();

return
0;
}
C語言memcpy函數原型:extern
void
*memcpy(void
*dest,
void
*src,
unsigned
int
count);

用法:#include
<string.h>

功能:由src所指內存區域復制count個位元組到dest所指內存區域。

說明:src和dest所指內存區域不能重疊,函數返回指向dest的指針。

舉例:

//
memcpy.c

#include
<syslib.h>

#include
<string.h>

main()

{

char
*s="Golden
Global
View";

char
d[20];

clrscr();

memcpy(d,s,strlen(s));

d[strlen(s)]=0;

printf("%s",d);

getchar();

return
0;

}
函數
strchr()

能:
在一個串中查找給定字元的第一個匹配之處\

法:
char
*strchr(char
*str,
char
c);
程序例:
#include
#include
int
main(void)
{
char
string[15];
char
*ptr,
c
=
'r';
strcpy(string,
"This
is
a
string");
ptr
=
strchr(string,
c);
if
(ptr)
printf("The
character
%c
is
at
position:
%d\n",
c,
ptr-string);
else
printf("The
character
was
not
found\n");
return
0;
}

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

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

Ⅳ c語言中memset函數的作用

memset(addr, val, size);

把addr地址開始的內存,大小為size位元組的值,賦值為val


相當於

unsignedchar*t=(unsignedchar*)addr;
inti;
for(i=0;i<size;i++)
t[i]=val;

效果一樣,不過一般memset不會這么實現,而是採用更高效的方法

Ⅵ c語言中,memset() 這個函數做什麼用請給出實例。

這個函數可以說是用來清理內存內容的,比如 你聲明一個變長的數組
printf("請輸入數組的長度:");
scanf("%d",&n);
char arr[n];
因為此處的數組變長 所以不能初始化 數組的裡面存著一堆隨機數,而你卻需要將這個數組清空時就可以使用這個函數 例如menset(arr,0,20)-------將數組arr的前20個清空成0. 懂?

Ⅶ c語言里有memset()怎麼用需要什麼頭文件

包含在 <string.h>頭文件中

memset為內存填充函數,可以用它對一片內存空間進行初始化, 它可以一位元組一位元組地把整個數組設置為一個指定的值
其原型為
void *memset(void *s, int v, size_t n);
這里s可以是數組名,也可以是指向某一內在空間的指針;
v為要填充的值;
n為要填充的位元組數,通常為sizeof(s);
使用memset時要注意的是,memset是逐位元組進行填充,所以s一般為char *型。

Ⅷ c語言中memset是什麼意思

memset()的函數, 它可以一位元組一位元組地把整個數組設置為一個指定的值。 memset()函數在mem.h頭文件中聲明,它把數組的起始地址作為其第一個參數,第二個參數是設置數組每個位元組的值,第三個參數是數組的長度(位元組數,不是元素個數)。其函數原型為:
void *memset(void*,int,unsigned);
其中void*表示地址
memset()的第一個實參是數組名,數組名作參數即數組作參數,它僅僅只是一個數組的起始地址而已。
實現第一個memset()函數調用的內存布局見圖7-3。 在函數memset()棧區,從返回地址往上依次為第1,2,3個參數。第1個參數中的內容是main()函數中定義的數組ia1的起始地址。第2個參數是給數組設置的值(0),第3個參數是數組的長度(50*2)。函數返回時,main()函數的數組中內容全置為0。

Ⅸ C語言的memset函數

memset

原型:extern void *memset(void *buffer, int c, int count);

用法:#include <string.h>

功能:把buffer所指內存區域的前count個位元組設置成字元c。

說明:返回指向buffer的指針。

舉例:

// memset.c

#include <syslib.h>
#include <string.h>

main()
{
char *s="Golden Global View";

clrscr();

memset(s,'G',6);
printf("%s",s);

getchar();
return 0;
}

相關函數:bzero,setmem,strset

Ⅹ 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');
}

熱點內容
步驟條源碼 發布:2024-05-05 15:35:55 瀏覽:844
安卓拍光遇視頻如何高清 發布:2024-05-05 15:23:20 瀏覽:932
linuxo文件 發布:2024-05-05 15:19:12 瀏覽:943
手機伺服器地址或者域名 發布:2024-05-05 15:19:09 瀏覽:372
我的世界伺服器版如何登錄 發布:2024-05-05 15:17:28 瀏覽:794
綦江dns伺服器地址 發布:2024-05-05 15:04:11 瀏覽:556
山東省日照市監控伺服器地址 發布:2024-05-05 15:03:59 瀏覽:342
java提升教程 發布:2024-05-05 15:00:51 瀏覽:144
驅動編譯龍芯 發布:2024-05-05 14:41:31 瀏覽:957
起什麼密碼 發布:2024-05-05 14:29:48 瀏覽:562