c++中,new的用法很灵活,这里进行了简单的总结:
1. new() 分配这种类型的一个大小的内存空间,并以括号中的值来初始化这个变量;
2. new[] 分配这种类型的n个大小的内存空间,并用默认构造函数来初始化这些变量;
#include
#include
using namespace std;
int main()
{
//char* p=new char("Hello"); //error分配一个char(1字节)的空间,
//用"Hello"来初始化,这明显不对
char* p=new char[6];
//p="Hello"; //不能将字符串直接赋值给该字符指针p,原因是:
//指针p指向的是字符串的第一个字符,只能用下面的
//strcpy
strcpy(p,"Hello");
cout<<*p<<
< #include using namespace std; int main() { int *a = new int[34]; int *b = new int[]; int (*c)[2] = new int[34][2]; int (*d)[2] = new int[][2]; int (*e)[2][3] = new int[34][2][3]; int (*f)[2][3] = new int[][2][3]; a[0] = 1; // b[0] = 1; //运行时错误,无分配的内存,b只起指针的作用,用来指向相应的数据 c[0][0] = 1; // d[0][0] = 1;//运行时错误,无分配的内存,d只起指针的作用,用来指向相应的数据 e[0][0][0] = 1; // f[0][0][0] = 1;//运行时错误,无分配的内存,f只起指针的作用,用来指向相应的数据 cout<<<<<<<<<<<<