当我使用创建的指针数组这样的:使用新的,使得它们不被初始化为NULL
int** newData = new int*[100];
我得到的100个对象(指针)和默认构造函数的数组被称为在他们身上,它会导致指针是NULL
。
如果这是代码的关键部分,我想避免数组的无效,我可以以一种很好的方式避免它吗? (不使用malloc
)
当我使用创建的指针数组这样的:使用新的,使得它们不被初始化为NULL
int** newData = new int*[100];
我得到的100个对象(指针)和默认构造函数的数组被称为在他们身上,它会导致指针是NULL
。
如果这是代码的关键部分,我想避免数组的无效,我可以以一种很好的方式避免它吗? (不使用malloc
)
这是实施质量问题。不保证指针在您显示的代码中被初始化。在C++中动态分配一个指针数组没有其他的方法可以保证更高的性能。
(指针不具备构造函数,它们被初始化或者未初始化。)
有没有constructor
呼叫你的情况做,你得到的是100个指针数组,要么发生在充满零或编译器已经提供了一个代码。当调用new
时,语言标准不要求这个数组被初始化。现在
,给您的其他问题:如果这是在critical part of code
- 何不干脆在程序的初始化时预先分配所需的阵列?这样你就不用担心一些随机代码将你的指针设置为预定义的值。
未调用默认构造函数。 http://ideone.com/Uinud – chris 2012-07-28 15:27:39
您需要在循环中运行每个构造函数 – 2012-07-28 15:28:21
如果它们碰巧是NULL,那只是巧合,或者可能是编译器中的一些调试选项。 – 2012-07-28 15:30:28