memset函数及其用法

作者: KangSmit的算法那些事儿 | 来源:发表于2020-04-22 16:44 被阅读0次

定义

void *memset(void *s, int c, unsigned long n)

描述

将指针变量 s 所指向的前 n 字节的内存单元用一个“整数” c 替换,注意 c 是 int 型。s 是 void* 型的指针变量,所以它可以为任何类型的数据进行初始化。

例子

# include <stdio.h> # include <string.h>
int main(void)
{ int i;  //循环变量
    char str[10]; char *p = str;
    memset(str, 0, sizeof(str));  //只能写sizeof(str), 不能写sizeof(p)
    for (i=0; i<10; ++i)
    {
        printf("%d\x20", str[i]);
    }
    printf("\n"); return 0;
}

根据memset函数的不同,输出结果也不同,分为以下几种情况:

memset(p, 0, sizeof(p));  //地址的大小都是4字节
0 0 0 0 -52 -52 -52 -52 -52 -52 memset(p, 0, sizeof(*p));  //*p表示的是一个字符变量, 只有一字节
0 -52 -52 -52 -52 -52 -52 -52 -52 -52 memset(p, 0, sizeof(str)); 0 0 0 0 0 0 0 0 0 0 memset(str, 0, sizeof(str)); 0 0 0 0 0 0 0 0 0 0 


memset(p, 0, 10);  //直接写10也行, 但不专业
0 0 0 0 0 0 0 0 0 0

参考:

http://c.biancheng.net/view/231.html

相关文章

网友评论

    本文标题:memset函数及其用法

    本文链接:https://www.haomeiwen.com/subject/kucwihtx.html