二维数组的初始化

二维数组的初始化

void init_command_struct(cmd_t *pcmd)
{
    int i;
    memset(pcmd->cmd_name,0,SZ_NAME);
   
    for (i = 0;i < SZ_COUNT;i++){
        memset(pcmd->cmd_arg_list[i],0,SZ_ARG);
    }
   
    pcmd->cmd_arg_count = 0;
}

请问无名老师,二维数组的初始化能直接对那块内存清空吗,代码如下:

memset(pcmd->cmd_arg_list,0,SZ_COUNT * SZ_ARG);

memset本质是操作内存,数组又是连续的内存块,二维数组整个清空应该可以吧


正在回答

登陆购买课程后可参与讨论,去登陆

1回答
可以,这里主要作用是清0,为了方便大家看,写了多个!可以直接用一个memset对整个内存块初始化的
  • 慕小白0101 提问者 #1

    memset( (void *)&struct_name, 0x00, sizeof(struct_name));

    2023-05-09 00:15:24
  • 慕小白0101 提问者 #2

    请问大白老师,这样初始化整个结构体可以吗?

    https://img1.sycdn.imooc.com//climg/6459229d0951ba2f04630158.jpg

    2023-05-09 00:26:49
  • 慕小白0101 提问者 #3

    图片中改成 memset(pinfo, 0, sizeof(*pinfo)); 可以吗

    2023-05-09 12:24:22
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师