d****i 发帖数: 4809 | 1 网上看到如下一段C++程序:
#include
#include
#include
using namespace std;
struct node {
int info;
struct node *next;
};
class stack{
struct node *top;
public:
stack();
void push(int);
int pop();
bool isEmpty();
void display();
};
void stack::push(int data){
node *p;
if((p=(node*)malloc(sizeof(node)))==NULL){
cout<<"Memory Exhausted";
exit(1);
}
p = new node;
p->info = data;
p->next = NULL;
if(top!=NULL){
p->next = top;
}
top = p;
}
问题是,malloc以后成功的话,又重新new了一次,是否会造成内存泄漏? |
l*********s 发帖数: 5409 | 2 most likely this is for some tutorial for tracking memory leaks. |
r*********r 发帖数: 3195 | 3 written by a c programmer who's learning c++? |
d****i 发帖数: 4809 | 4 很不喜欢这种把malloc和new混在一起用的用法,保持一种style比较清楚。
【在 r*********r 的大作中提到】![](/moin_static193/solenoid/img/up.png) : written by a c programmer who's learning c++?
|
d***q 发帖数: 1119 | 5
malloc/free new/delete..
if mixed,,the world is chaos.
【在 d****i 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 很不喜欢这种把malloc和new混在一起用的用法,保持一种style比较清楚。
|