When I use this:
int** newData = new int*[100];
I get array of 100 objects (pointers) and default constructor is called on them, it causes pointers to be NULL.
If this is critical part of code and I want to avoid the nullification of the array, can I avoid it in a nice way? (without using malloc)
This is a quality of implementation issue. The pointers are not guaranteed to be initialized in the code that you have shown. There is no other way of dynamically allocating an an array of pointers in C++ that is guaranteed to be more performing.
(Pointers don’t have constructors, they are either initialized or left uninitialized.)