Just initialize the pointer array with 0 like this:
char** test = new char*[256] = {};
char* test[256] = {}
Note that since the initialization list is empty, it will be padded with 0 automatically. See
here[
^] for more info.
[edit]fixed intialization statement - sadly it won't work with heap variables[/edit]
[edit2]
After nv3 pointed it out I tried initializing the array using new, and it does indeed work with MS VisualSTudio 2010. I couldn't pinpoint a reference to this behaviour though, so I can only report what works with this compiler:
char *test[256] = nullptr;
test = new char*[256](); assert(test[123] == 0); delete [] test;
test = new char*[256]; assert(test[123] == 0);
[/edit2]