c++的new和delete有关问题
求助 c++的new和delete问题
一个队列的问题 程序走到watch 2 的时候不应该把申请的节点都删除了吗 为什么占用的内存空间还在

------解决思路----------------------
删除后还要给NULL
------解决思路----------------------
delete空间,空间不一定就给了操作系统,再者,如果你delete的空间没就被其他程序或你的程序再次申请时,空间中的值还没有被覆盖
------解决思路----------------------
野指针野指针野指针
------解决思路----------------------
delete以后应该是向你的电脑申明,这块空间我不用了,你可以拿去用。但是电脑未必使用了这块区域
------解决思路----------------------
new、delete和malloc、free的区别:
http://blog.****.net/zhangxiangdavaid/article/details/43889365
一个队列的问题 程序走到watch 2 的时候不应该把申请的节点都删除了吗 为什么占用的内存空间还在
#include <iostream>
using namespace std;
typedef struct node
{
string data;
struct node * next;
~node()
{
}
}node ,*pnode;
typedef struct link
{
int count;
pnode head;
pnode tail;
}link,*plink;
plink createList()
{
plink list=new link;
list->count=0;
list->head=NULL;
list->tail=NULL;
return list;
}
void add(plink head,pnode n)
{
if(head->count==0)
{
head->head=n;
head->tail=n;
head->count++;
}
else
{
head->tail->next=n;
head->tail=n;
head->count++;
}
}
string del(plink head)
{
pnode n=head->head;
string temp=n->data;
head->head=head->head->next;
head->count--;
delete n;
return temp;
}
int main()
{
plink list=createList();
int t;
cout<<"watch 0"<<endl;
cin>>t;
for(int i=0;i<10000;i++)
for(int j=0;j<1000;j++)
{
pnode n=new node;
int m=i%127;
n->data+=m;
n->next=NULL;
add(list,n);
}
cout<<"watch 1"<<endl;
cin >> t;
for(int i=0;i<10000;i++)
for(int j=0;j<1000;j++)
{
string temp=del(list);
}
cout<<"watch 2"<<endl;
cin>>t;
cout<<endl;
return 0;
}
------解决思路----------------------
删除后还要给NULL
------解决思路----------------------
delete空间,空间不一定就给了操作系统,再者,如果你delete的空间没就被其他程序或你的程序再次申请时,空间中的值还没有被覆盖
------解决思路----------------------
野指针野指针野指针
------解决思路----------------------
delete以后应该是向你的电脑申明,这块空间我不用了,你可以拿去用。但是电脑未必使用了这块区域
------解决思路----------------------
new、delete和malloc、free的区别:
http://blog.****.net/zhangxiangdavaid/article/details/43889365