小编gar*_*rry的帖子

在C++中使用结构上的memset

大家好.我正在为我的工作修复旧代码.它目前用C++编写.他们将静态分配转换为动态,但没有编辑memsets/memcmp/memcpy.这是我的第一次编程实习,因为我的类似于newbe的问题.

下面的代码在C中,但我希望在C++中使用它(我读过malloc在C++中不是很好的做法).我有两个场景:首先,我们创建了f.然后使用&f以填充零.第二个是指针*pf.我不确定如何将pf设置为全部0,就像前面的C++示例一样.

你可以pf = new foo代替malloc然后打电话memset(pf, 0, sizeof(foo))吗?

struct foo { ... } f;
memset( &f, 0, sizeof(f) );

//or

struct foo { ... } *pf;
pf = (struct foo*) malloc( sizeof(*pf) );
memset( pf, 0, sizeof(*pf) );
Run Code Online (Sandbox Code Playgroud)

c++ memset memcmp

6
推荐指数
1
解决办法
6629
查看次数

在C++中的结构数组上的memset

我有另一个memset问题.好像我正在编辑的代码可能有一些问题(或者在不同的文件中没有以相同的方式完成)

A::LRM las[9]; //A and LRM are both structures with BOOLS and INTS
memset(&las, 0, sizeof(las));

typedef Sec SecArray[16];
SecArray rad_array;
memset(rad_array, 0, sizeof(SecArray));
Run Code Online (Sandbox Code Playgroud)

第二个示例似乎是正确的,因为rad_array它与数组中的第一个位置相同.那sizeof(SecArray))会有意义.第一个似乎对我不正确.所有的结构都只是BOOL,INTS没有任何动态.

我在其他关于memset的帖子中的理解是它遵循这种格式.

memset("pointer to object", "what to set it to", "size of object")

如果我的理论不正确,谁能告诉我这里到底发生了什么?

c++ memset

0
推荐指数
1
解决办法
2万
查看次数

标签 统计

c++ ×2

memset ×2

memcmp ×1