mi è venuto un dubbio

char * str = new char[30];

disalloco con
delete str; oppure delete [] str;

ancora,

void *dato ;
dato = new char [30]:

disalloco con
delete dato; oppure delete [] (char *)dato; oppure delete (char*)dato;

ciao
sergio