• memset函数


    有时我们希望快速地将某个数组的元素全部置为0或者其他的某个值,一种方法是使用循环来实现,而C语言string.h提供了一个更为方便的函数memset来完成该工作。

    memset的定义

    void * memset ( void * ptr, int value, size_t num );
    

    示例代码

    #include<iostream>
    #include<cstring>
    using namespace std;
    
    int main(){
        int arr[5] = {1, 2, 3, 4, 5};
        
        memset(arr, 0, sizeof(arr));
        for(int i = 0; i < 5; i++)
            cout << arr[i] << " ";
    } 
    

    输出结果为:

    0 0 0 0 0
    

    注意:

    memset函数是逐个字节填充,即只能将一个整数填充为全0或者全1。而带符号整数在计算机中使用补码表示,因此memset函数只能给数组赋值为全0,或者全-1.

    示例代码:

    #include<iostream>
    #include<cstring>
    
    int main()
    {
        int a[10];
        memset(a, 11, sizeof(a));
        printf("%d
    ", sizeof(a));
        for (int i = 0; i < 10; i++){
            printf("%d ", a[i]);
        }
    }
    

    运行结果:
    40
    185273099 185273099 185273099 185273099 185273099 185273099 185273099 185273099 185273099 185273099

    可见,memset函数的作用是将从起始地址开始的长度为num的字节全部以某字节填充,并且只能用于填充0和-1。

    CS专业在读,热爱编程。
    专业之外,喜欢阅读,尤爱哲学、金庸、马尔克斯。
  • 相关阅读:
    filter过滤组件Grok 正则捕获
    Logstash 最佳实践配置语法
    【小记】Ubuntu 工具链升级 gcc 流程
    图数据集cora详解
    HGNN超图神经网络代码
    modelnet40数据集
    GCN代码解读(版本1)
    GCN代码解读(版本2:github版本)
    企业微信代开发自建应用开发
    企业微信服务商工具实现
  • 原文地址:https://www.cnblogs.com/jmhwsrr/p/14598718.html
Copyright © 2020-2023  润新知