
4个回答
展开全部
不是可有可无的,得看你如何使用
举例:
1、 int *p = new int;
*p = 5;
此时p没有空间必须申请
2、int a = 5;
int *p;
p = &a; //p不用重新申请空间,它指向a的空间。。
举例:
1、 int *p = new int;
*p = 5;
此时p没有空间必须申请
2、int a = 5;
int *p;
p = &a; //p不用重新申请空间,它指向a的空间。。
展开全部
int *p = new int;
是在堆中给变量分配了一个空间,当用完后需要手动释放。可以使用delete()函数
如果没有int *p = new int; 是不能给p进行赋值的 因为没有分配空间。
你也可以使用malloc分配空间,但最后释放的时候要使用free()函数
是在堆中给变量分配了一个空间,当用完后需要手动释放。可以使用delete()函数
如果没有int *p = new int; 是不能给p进行赋值的 因为没有分配空间。
你也可以使用malloc分配空间,但最后释放的时候要使用free()函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果是
int * p;
*p = 0;
那么结果是不可预知的,可能正常执行,也可能立即崩溃,或者在任何无法预知的时候出现任何无法预知的问题。
如果是
int t;
int * p=new int;
p = &t;
将会造成内存泄漏,如果多次出现这样的情况,将会导致程序可用的内存越来越少。
int * p;
*p = 0;
那么结果是不可预知的,可能正常执行,也可能立即崩溃,或者在任何无法预知的时候出现任何无法预知的问题。
如果是
int t;
int * p=new int;
p = &t;
将会造成内存泄漏,如果多次出现这样的情况,将会导致程序可用的内存越来越少。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看你对p赋值是什么意思了。
如果说让p指向另外一个int *指针可以。
但是如果说你要 *p =1或者什么就不行了。
必须得new int分配空间
如果说让p指向另外一个int *指针可以。
但是如果说你要 *p =1或者什么就不行了。
必须得new int分配空间
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询