我听说过C++程序员应避免使用memset,

class ArrInit {
    //! int a[1024] = { 0 };
    int a[1024];
public:
    ArrInit() {  memset(a, 0, 1024 * sizeof(int)); }
};

因此,考虑以上代码,如果不使用memset,如何将[1..1024]填充为零?C++中的memset有什么问题?

谢谢。

最佳答案

问题不是在内置类型上使用memset()而是在类(又名非POD)类型上使用它们。这样做几乎总是会做错事,而经常会做致命的事-例如,它可能会践踏虚函数表指针。

关于c++ - C++程序员应该避免使用memset吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1975916/

10-12 04:49