当前位置:首页 » 编程语言 » c语言memset函数

c语言memset函数

发布时间: 2022-03-02 01:39:44

⑴ 在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函数都可以给什么类型的数组清零

函数原型:void *memset(void *s, int c, size_t n);
函数解释:将s中前n个字节替换为ch并返回s;
memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法。

⑶ 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函数的作用

memset(addr, val, size);

把addr地址开始的内存,大小为size字节的值,赋值为val


相当于

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

效果一样,不过一般memset不会这么实现,而是采用更高效的方法

⑸ 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()是什么意思什么功能

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()是怎么用的

j=0;是一句初始化语句,在int
j;声明变量后变量的值是未知的,所以要在使用前赋初值。
memset(word,0,21);这个函数第一参数是一个指针,指向目标内存的首地址,第二个参数是你要赋给指定内存块中各个字节的值。第三个参数是被操作内存块的字节数。连在一起这个语句的意思是,从word指向的内存地址开始的21个字节的内存,赋成0。其实也是一个初始化操作。

⑻ C语言编程有关memset函数

在你调用memset()函数时,第三个参数大小不对,应该是memset(b,0,40)。
实际上一个整型的变量在32位机的内存中占用4个字节
的大小。如:你可以定义一个整型变量a然后用:
printf("%d",sizeof(a));看到它在内存中占用的字节数。

当然建议在调用memset()函数时用sizeof()函数来自动
取它的大小,如你的例子中可以用:
memset(b,0,sizeof(b));

⑼ C语言问题, memset()函数

P3指向开辟的20个字节的空间的首地址
而P2初始值等于P3,然后不断++,指针一直向后移动
如果不加P2,而直接用P3 ++,printf("%s\n",p3);这句的P3就错了,因为P3已经不是首地址了
至于你说的40以前先输出name再报错,40以后直接报错,那是因为:
后面的20个字节刚好是尚未分配的内存,你对尚未分配的内存进行置0操作,虽然错误,但不会造成严重后果,所以先输出name再报错
超过20个字节以后,刚好是已分配的内存,存有数据,你要进行置0操作,系统当然不允许了,直接出错。
你说的40 41 是不确定的,在不同时候,值可能不同。
但是因为系统的内存4个字节对齐的缘故,
必然是4n 4n+1 n为整数 如36 32 28先输出name再报错
37 33 29直接报错
补充一点:你如果把free这句注释掉就不会报错,但是每运行一次就有一块内存被占用而没被使用

⑽ C语言中memset函数是在哪个头文件中

string.h 和 memory.h中都有
这些头文件都是标准库中的

热点内容
安卓手机涨价怎么办 发布:2025-01-11 23:27:17 浏览:711
三消游戏服务器搭建 发布:2025-01-11 23:20:01 浏览:246
c语言的函数不可单独进行编译 发布:2025-01-11 23:12:33 浏览:17
怎么查信用卡查询密码 发布:2025-01-11 23:11:08 浏览:572
javaexcel源码 发布:2025-01-11 23:11:04 浏览:557
讨论会脚本 发布:2025-01-11 23:09:27 浏览:574
test服务器搭建 发布:2025-01-11 23:03:22 浏览:421
微信里的密码和账号在哪里 发布:2025-01-11 22:46:04 浏览:752
java字符串个数统计 发布:2025-01-11 22:45:05 浏览:543
完美国际2捏脸数据库 发布:2025-01-11 22:45:04 浏览:281