尽量不在C++中使用malloc和free,因为它们和new ,delete混用会导致错误发生概率大大增加。
string *stringarray1 = static_cast(malloc(10 * sizeof(string))); string *stringarray2 = new string[10];
第一句为stringarray1分配了容纳10个string对象的空间,但是并没有在内存里创建这些对象,
而第二句创建了一个含10个string对象的数组。
释放stringarray1的指针,要free( stringarray1);stringarray=null;释放
stringarray2的指针,要用delete []stringarray2;
malloc和free不涉及对象的构造和析构,只是简单的分配内存!
在c++程序里使用malloc和free没有错,只要保证用malloc得到的指针用free,或者用new得到的
指针最后用delete来操作就可以了。千万别马虎地把new和free或malloc和delete混起来用,那只
会自找麻烦。