与 alloc/free 相比,我对 new/delete 运算符有疑问。
当为 char* 动态分配内存时,我通常使用 calloc,因此所有保留位都设置为零,因此我不必为 null 终止而烦恼。
char *string = new char[20] 是否仅保留 20 个具有 char 大小的项目,或者它是否还将该内存区域中的所有位设置为零?
如果不能,可以在此内存上使用 memset 来实现吗?如果 memset 或任何其他将分配的内存清零的方法是可能的,是否可以为本地 char 类型重载 new 运算符以自行完成这项工作?