char *p=new char[10]; 和 char p[10]; 有啥区别

2024-11-25 00:26:58
推荐回答(2个)
回答1:

char *p=new char[10]; 是动态申请的内存,在堆里面,需要用
delete [] p;进行手动释放;
char p[10];是在栈里的内存,编译器自行释放,不能用语句手动释放

回答2:

前者是申请的堆里的内存, 要手动释放.
后者是应用程序自动释放空间的.
但是两个p在使用上是一样的, p都表示字符数组的第一个字符的地址.