听说c++程序员应该避免memset,
class ArrInit {
//! int a[1024] = { 0 };
int a[1024];
public:
ArrInit() { memset(a, 0, 1024 * sizeof(int)); }
};
所以考虑到上面的代码,如果你不使用 memset,你怎么能让一个 [1..1024] 填充零?C++ 中的 memset 有什么问题?
谢谢。
最佳答案
在 C++ 中,std::fill
或 std::fill_n
可能是更好的选择,因为它是通用的,因此可以对对象和 POD 进行操作。但是,memset
对原始字节序列进行操作,因此不应用于初始化非 POD。无论如何,如果类型是 POD,std::fill
的优化实现可以在内部使用特化来调用 memset
。
关于c++ - C++ 程序员应该避免 memset 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1975916/