分享

初始化(清0)数组的函数 - CSDN - FAQ

 setprecision 2010-10-09
问题内容:初始化(清0)数组的函数
  • 原讨论链接:http://community.csdn.net/expert/topicview1.asp?id=1799237
  • 所属论坛:Windows SDK/API     审核组:C++ Builder
  • 提问者:pspice     解决者:SharpKing515
  • 感谢:wgh166、nightfallrove、jishiping、chifengwatch、GodBirdFlying、SharpKing515
  • 关键字:
  • 答案:

    记得以前在哪看到过几个初始化数组的函数,可当时记下来,请大家帮帮忙。
    它的做用相当于把每个数组元素付0值,像memset(...)那样的。
    谢谢!!!

    ---------------------------------------------------------------

    int a[10][50];

    memset(a, 0, sizeof(a));
    ---------------------------------------------------------------

    char a[125];
    memset(a,0,125);
    第一个参数是要清0的数组,第二个参数是你
    要设置的值,比如你可以把一个数组全部设为1
    memeset(a,1,125);
    最后一个参数是数组长度,以字节为单位。。。
    ---------------------------------------------------------------

    要看你的数组类型了。如果数组的每个成员是一个class或者struct,而且他们的成员变量
    包含class或者struct变量,可能就不能用memset来赋初始值了。比如:
    struct TestStruct
    {
        int num;
        char buf[16];
        AnsiString Name;
    };

    TestStruct ArrayTS[10];
    此时就不能用 memset(ArrayTS, 0, sizeof(ArrayTS));
    ---------------------------------------------------------------

    同意楼上所有,如果不嫌累,写个循环也可以。:)
    for(...){x[i]=0;}
    ---------------------------------------------------------------

    很多情况下,偶都是在使用前将其清空的
    ---------------------------------------------------------------

    VOID ZeroMemory(

        PVOID Destination,  // address of block to fill with zeros 
        DWORD Length  // size, in bytes, of block to fill with zeros  
       )
    //---------
    VOID FillMemory (

        PVOID Destination, // pointer to block to fill 
        DWORD Length, // size, in bytes, of block to fill 
        BYTE Fill  // the byte value with which to fill  
       );
    这个应该也可以吧???!!

    • 本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
      转藏 分享 献花(0

      0条评论

      发表

      请遵守用户 评论公约

      类似文章 更多