memset原理(为什么只能初始化成0或者-1)

原创 2013年12月02日 19:24:30

memset是依靠二进制进行初始化,int是4个字节,memset把每个字节都赋值,也就是说,比如memset(a,2,sizeof(a))  则00000010 00000010 00000010 00000010

而0,则是00000000 00000000 00000000 00000000结果是0

而-1,则是11111111 11111111 11111111 11111111结果也是-1

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
int main()
{
	int a[5];
	memset(a,2,sizeof(a));
	for (int i=1;i<=2;i++)
		printf("%d\n",a[i]);
	//00000010 00000010 00000010 00000010
	int s=pow(2,25)+pow(2,17)+pow(2,9)+2;
	printf("%d\n",s);
	return 0;
}


[原创]使用memset初始化数组为-1或…

相信很多人使用过memset来初始化数组为-1或0。 这时候数组元素正好是-1或0。 今天看了memset的效率问题后,才想起这是个恰巧。 之前一直以为memset是对每个元素赋值,而实际不是的。 ...
  • wakeupwakeup
  • wakeupwakeup
  • 2016年01月14日 09:10
  • 1719

老生常谈,正确使用memset

前段项目中发现一个问题,程序总是在某个dynamic_cast进行动态转换时出异常,查了半天才发现问题原来是出在memset的使用上,虽然问题本身显而易见,但当处于几十万行代码量级中时,就变得不太那么...
  • my_business
  • my_business
  • 2014年10月28日 11:21
  • 82796

memset()函数及其作用

1. memset()函数原型是extern void *memset(void *buffer, int c, int count)        buffer:为指针或是数组,         ...
  • qq_27522735
  • qq_27522735
  • 2016年11月28日 10:39
  • 48642

memset0和memset1的区别。。

http://topic.csdn.net/u/20090709/16/a9d9d670-48ee-476e-aa21-6bb9d5f7a40e.html memset不能为int型数组初始化吗?如...
  • wang37921
  • wang37921
  • 2011年08月11日 11:26
  • 628

化:尽量用memset将一个数组设置清零,而不是通过for循环逐个置0

优化:尽量用memset将一个数组设置清零,而不是通过for循环逐个置0 (2011-10-27 09:35:05) 转载▼ 标签:  优化技巧   memset虚表   数组置零 ...
  • lphbtm
  • lphbtm
  • 2016年03月14日 12:51
  • 2644

memset 赋值

memset 赋值 0x3f3f3f3f 0x7fffffff
  • lx417147512
  • lx417147512
  • 2014年05月28日 19:06
  • 1835

memset函数的使用原理

竞赛中经常使用memset函数进行数组初始化,但只能初始为0, -1。哪怕写成: int num[N]; memset(num, 1, sizeof(num)); num[0]也是个很大的数。 今...
  • xishisugan
  • xishisugan
  • 2017年02月01日 20:35
  • 448

int数组为什么一般不能用memset初始化每个元素

对于整数型数组,若要是初始化为非0的值时应该使用for循环 而对于字符型 或 0  应该使用memset 函数 如下是可以的,能把数组中的元素值都设置成字符1, #include #inclu...
  • qq1169091731
  • qq1169091731
  • 2016年07月17日 21:28
  • 2340

memset函数赋初值问题

我的第一篇博客。。。 今天写memset函数的时候遇到了老生常谈的话题,#include #include using namespace std; int main () { int ...
  • eo_yohe
  • eo_yohe
  • 2016年05月17日 18:59
  • 1261

memset函数的正确使用与原理

头文件:#include 经常用这个初始化,没想到最后错误也是因为它。 函数原型为void* cb_memset(void* buffer, int b, size_t size) 这个函数...
  • amy_jork
  • amy_jork
  • 2016年07月28日 15:37
  • 3461
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:memset原理(为什么只能初始化成0或者-1)
举报原因:
原因补充:

(最多只允许输入30个字)