我正在为我的工作修复旧代码。它目前是用 C++ 编写的。他们将静态分配转换为动态分配,但没有编辑 memset/memcmp/memcpy。这是我的第一次编程实习,我的新手问题如此简单。
以下代码是用 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) );