博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
为什么int型的数组用memset不能清零(memset的使用规范)
阅读量:4048 次
发布时间:2019-05-25

本文共 515 字,大约阅读时间需要 1 分钟。

问题:为什么这样用memset不能清零
#include<stdio.h>
#include<string.h>
int main()
{
   int i,a[100];
   memset(a,0,100);//改memset(a,0,sizeof(a));或memset(a,0,100*sizeof(int));就可以了
   for(i=0;i<100;i++)
       printf("%d ",a[i]);
   return 0;

}

解决:memset(a,0,100);//改memset(a,0,sizeof(a));或memset(a,0,100*sizeof(int));就可以了

原因:void *memset(void *s, int ch, unsigned n)函数的作用:将s所指向的某一块内存中的每个字节(注意这里是每个字节,你可能用字符串习惯了)的内容全部设置为ch指定的ASCII值,memset 工具  块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作,   其返回值为指向S的指针。 

原本定义的是整型, 占一个字节

memset(a,0,100*sizeof(int)) 这样是100个4个字节的内存

转载地址:http://dtbci.baihongyu.com/

你可能感兴趣的文章
ASP中LIST控件
查看>>
ASP中按钮触发事件
查看>>
学习:GPIO口模拟I2C
查看>>
展望2007
查看>>
做个男人
查看>>
转:S3C2410 bootloader ----VIVI阅读笔记
查看>>
转:嵌入式系统 Boot Loader 技术内幕
查看>>
ARM 的宏定义
查看>>
SIGN UP BEC2
查看>>
S3C2440中对LED驱动电路的理解
查看>>
《天亮了》韩红
查看>>
Windows CE下USB摄像头驱动开发(以OV511为例,附带全部源代码以及讲解) [转]
查看>>
关于货币符号以及发音、币别码
查看>>
关于预处理器的学习
查看>>
ARM,S3C2410中脉宽调制定时器
查看>>
Zebra Bar-One 不能批量打印离散号码
查看>>
Platform创建WinCE内核时的编译错误
查看>>
玻璃杯
查看>>
柳永 《雨霖铃》
查看>>
MD2410开发板通过仿真器烧Bootloader简单流程
查看>>