首页 > 其他分享 >memset

memset

时间:2024-02-25 15:56:55浏览次数:18  
标签:初始化 字节 int void memset 设置

void *memset(void *str, int c, size_t n)

memset用来初始化数据,但是需要注意,memset是按照字节初始化的。对于char类型,可以随便设置,如果是int等大于1个字节的数据,只能设置0和-1,设置其他的值是无法满足需求的。

比如设置1,memset会对每一个字节设置为1,但是如果是int类型,有4个字节,这4个字节要看作一个整体,所以需要在最低位的字节或者最高位的字节(这要看是大端还是小端)设置为1,其他的字节是0,但是memset并不能区分数据类型,所以最后把一个int类型的每一个字节都设置为1,数值就变了。

之所以可以设置0和-1,也并不是正确的,只不过0和-1比较特殊,数值为0,每一个字节都是0,数字是一样的,所以按照字节设置也没有问题,-1同理,按照补码存,每一位都是1,所以也没有问题。

标签:初始化,字节,int,void,memset,设置
From: https://www.cnblogs.com/studywithallofyou/p/18032492

相关文章

  • strcmp--memset
    strcmp用法--字符串库函数<string.h>memset函数用法头文件<string.h>strcmp#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>#include<string.h>intmain(){ chararr1[]="xyd"; chararr2[]="***************"; strcpy(arr......
  • memset,memcpy,strcpy 有什么区别?
    memsetmemset的作用是在一段内存块中填充某个给定的值。voidmemset(void*ptr,intvalue,size_tnum);将 ptr 指向的内存块从前往后num个字节用value替换。返回值为ptrintmain(){ chararr[]="abc"; memset(arr,'s',2); printf("%s",arr); return0;}//输......
  • 【c&c++】C++中memset()函数的用法详解
    头文件:cstring 或 memory话说刚开始使用memset的时候一直以为memset是对每一个int赋值的,心里想有了memset还要for循环对数组进行初始化干嘛。但其实memset这个函数的作用是将数字以单个字节逐个拷贝的方式放到指定的内存中去memset(dp,0,sizeof(dp));int类型的变量一般占......
  • c语言之memset的初次小练
    //memset--memoryset内存设置//memset(void*ptr,intvalue,size_tnum);//翻译过来就是memset(一个地址,一个你想要将地址中的原有值改为该值,该地址中从左往右的原有的值的数)#include<stdio.h>#include<string.h>intmain(){ chararr[]="helloworld"; memset(arr,......
  • 内存函数,memcpy,memmove,memcmp,memset
    structs{ charname[20]; intage;};intmain(){ intarr1[]={1,2,3,4,5}; intarr2[5]={0}; structsarr3[]={{"张三",20},{"李四",18}}; structsarr4[3]; memcpy(arr4,arr3,sizeof(arr3)); //memcpy(arr2,arr1,sizeof(a......
  • memset 与 fill 函数的区别
    在使用时发现memset和fill函数有异同,为了防止考试的时候挂分,专门了解了一下。memset函数由于memset的底层实现是类似二进制实现的字节赋值,只能赋为\(0\),\(1\),\(INF\)或\(-INF\),有比较大的局限性。举个例子:\(int\)类型有\(4\)个字节,每个字节有\(8\)个数字,一......
  • memset 定义方法
    memset定义方法int”较“的原则:加法不爆。极大值:0x7f较大值:0x3f较小值:0xc0极小值:0x80longlong”较“的原则:加法不爆。极大值:0x7f较大值:0x3f较小值:0xc0极小值:0x80float”较“的原则:保证一定位精度。7f以上一直到be都是-0(实际上是一个很小的>-1.0的负数)极大值:0......
  • memset() 函数的使用
    //Lvxin1-1 memset.cpp //memset()函数的使用 #include<stdio.h>#include<string.h> intmain(){   charstr[]="almosteveryprogrammershouldknowmemset!";   doubled;   memset(&d,0,sizeof(d));   memset(str,'......
  • memset初始化类对象出错解析
    void*memset(void*s,intv,size_tn); 英文释义如下:Copiesthevaluev(convertedtotypeunsignedchar)tothefirstnbytespointedtobys;returnss. 这里s可以是数组名,也可以是指向某一内在空间的指针;v为要填充的值;n为要填充的字节数,通常为sizeof(s);使用memset......
  • memset的用法详解
    memset的用法详解memset简介memset是一个初始化函数,作用是将某一块内存中的全部设置为指定的值。void*memset(void*s,intc,size_tn);s指向要填充的内存块。c是要被设置的值。n是要被设置该值的字符数。返回类型是一个指向存储区s的指针。需要说明的几个地方一、......