C++里什么时候需要用NEW和DELETE语法
书上讲的使用NEW和DELETE我感觉基本上可以不用也一样可以啊不知道什么情况下才需要使用或者使用了更好?好在哪里?...
书上讲的使用NEW和DELETE我感觉基本上可以不用也一样可以啊
不知道什么情况下才需要使用或者使用了更好?好在哪里? 展开
不知道什么情况下才需要使用或者使用了更好?好在哪里? 展开
4个回答
2013-07-26
展开全部
如果以后你学MFC,那基本上都是要用指针的,那么new就常用了,new是在堆上创建对象,他保存的地址不会自动销毁,但是如果不用new那么在函数
void func()
{
Student st;
st.name="hello";
}
void main()
{
func();
cout<<st.name;//错误的调用
}
st只是局部变量,除了函数st就被销毁了,这样不利于传递参数等,那就得用全局变量了,而new就避免使用全局变量。
void func()
{
Student *st=new Student;
st->name="hello";
}
void main()
{
func();
cout<<st->name;//正确的调用
}
注意上门两个程序都是片段还有class Student{};没有声明和定义,只是为了说明问题
void func()
{
Student st;
st.name="hello";
}
void main()
{
func();
cout<<st.name;//错误的调用
}
st只是局部变量,除了函数st就被销毁了,这样不利于传递参数等,那就得用全局变量了,而new就避免使用全局变量。
void func()
{
Student *st=new Student;
st->name="hello";
}
void main()
{
func();
cout<<st->name;//正确的调用
}
注意上门两个程序都是片段还有class Student{};没有声明和定义,只是为了说明问题
2013-07-26
展开全部
动态创建数组的时候
例如我有很多个数
但是我不用人工去数
用函数去计
如int i=sizeof(a);//求出a的大小
int *p = new int[i];创建数组p[i],其中i就是(a大小)个
delete p[];删除p数组
例如我有很多个数
但是我不用人工去数
用函数去计
如int i=sizeof(a);//求出a的大小
int *p = new int[i];创建数组p[i],其中i就是(a大小)个
delete p[];删除p数组
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-26
展开全部
当需要输入的值或计算的值来确定数组的大小时
new和delete运算符分别用于为指针变量动态分配内存空间和动态收回指针所指向的内存空间
new和delete运算符分别用于为指针变量动态分配内存空间和动态收回指针所指向的内存空间
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-26
展开全部
动态申请存储空间的时候
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询