PDA

View Full Version : لیست پیوندی



iut.ali
چهارشنبه 19 آذر 1393, 22:22 عصر
سلام من یه لیست پیوندی خیلی ساده نوشتم و حالا توش به یه مشکل برخوردم اول کدو بذارم
#include <iostream>

using namespace std;


class node
{
node* next;
int mData;
friend class linklist;
public:
void* operator new(size_t);
};


void* node::operator new(size_t x)
{
void * p = malloc(sizeof(node));
memset(p, 0, sizeof(node));
return p;
}


class linklist
{
node* first;
public:
void add(int);
void displayAll();
linklist();
};


linklist::linklist()
{
first = nullptr;
}


void linklist::add(int data)
{
node* newNode = new node;
if (newNode == nullptr) return;
newNode->mData = data;
if (first == NULL)
{
first = newNode;
return;
}
else
{
node* temp = first;
while (temp->next != NULL)
{
temp = temp->next;
}
temp->next = newNode;
}
}


void linklist::displayAll()
{
node* temp = first;
while (temp != NULL)
{
cout << temp->mData << endl;
temp = temp->next;
}
}



خب حالا مسئله اینجاس که اگه من اپراتور new رو overload نکنم برنامم run time error میده دلیلش رو نمیفهمم اگه کسی دلیلشو میدونه ممنون میشم بهم بگید

rahnema1
چهارشنبه 19 آذر 1393, 22:49 عصر
سلام

مشکل از new نیست
این را اصلاح کنید

node* newNode = new node;
newNode->next = nullptr;
if (newNode == nullptr) return;