char*p[] 字符指针的数组 怎么new出来?
如题,
我山寨的做法是
int* p = new int[4];
char** pp = (char**) p;
for(int i = 0;i<4;++i )
{
pp[i] = new char[255];
}
[解决办法]
char* *p = new char*[4];
for (int i = 0; i < 4; i++)
p[i] = new char[255];
return 0;
3 // 推荐用malloc, 不要用尽量少用new
4 int i;
5 char ** p = (char *) malloc (sizeof(char)* 4);
6
7 for(i = 0 ; i< 4 ; i ++)
8 {
9 p[i] = (char *) malloc(sizeof(char)* 255);
10 }
如果只是分配空间的,少用new
原因的话,很多,说一个
new只是操作符而已,malloc是库函数,new的实现是调用malloc的,
new只是针对非内部数据结构时候调用构造函数,
所以如果不是分配非内部数据结构的话,还是用malloc效率还是高点!