为啥类的对象不可以用memset初始化,而结构体可以?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥类的对象不可以用memset初始化,而结构体可以?相关的知识,希望对你有一定的参考价值。
如题。
请分别举例子说明,可以加分呵
#include <string.h>
#include <stdlib.h>
class A
public:
int num;
;
int main()
A a[2];
a[0].num = 1;
printf("%d\n", a[0].num);
memset(a, 0, sizeof a);
printf("%d\n", a[0].num);
system("pause");
return 0;
void *memset(void *s, char ch, unsigned n);
第一个参数是void *。如果你只对一个对象memset那是不行的,比如
memset(a[0], 0, sizeof (a[0]));
除非这样写
memset(&a[0], 0, sizeof (a[0])); 参考技术C 楼上说的
memset使成员函数指针置空 参考技术D 我想除了含vptr的以外都可以用memset初始
为啥memset不能将数组元素初始化为1?(急)
在C++中 memset() 可以将数组每个元素初始化为-1 0 false true 这个我们经常用,是可以的,但是昨天将数组元素初始化为1 就出错了。全部变成了168009!不知道是怎么一回事?大虾们能否给指点迷津?
很简单memset是一个字节一个字节的设置,把一个int的每个字节都设置为1,也就是0x01010101,十进制就是16843009 参考技术A 很简单memset是一个字节一个字节的设置,把一个int的每个字节都设置为1,也就是0x01010101,十进制就是16843009以上是关于为啥类的对象不可以用memset初始化,而结构体可以?的主要内容,如果未能解决你的问题,请参考以下文章