新运算符是否保证分配连续的堆内存?即
objects=new Base[1024];
Run Code Online (Sandbox Code Playgroud)
在内存分配方面一样
objects=(Base*)malloc(1024*sizeof(base));
Run Code Online (Sandbox Code Playgroud)
还是会有差距?
是的,记忆将是连续的.在分配方面,它与malloc版本相同,但存在一些差异(对构造函数的调用,new不返回NULL,malloc不抛出异常等等).
请注意,你不能混淆new[],delete或者free你必须delete[] objects用来释放内存.