cho hỏi trong c thì ta cấp phát bộ nhớ cho 1 node như vầy:
NODE GetNode()
{
NODE p;
p=(NODE)malloc(sizeof(Node));
return p;
}
====>>>> cái đó giờ viết trong c++ thì sao ạ ??
cho hỏi trong c thì ta cấp phát bộ nhớ cho 1 node như vầy:
NODE GetNode()
{
NODE p;
p=(NODE)malloc(sizeof(Node));
return p;
}
====>>>> cái đó giờ viết trong c++ thì sao ạ ??
Bạn tìm hiểu toán tử new nhé.
Code này có vấn đề. Code này có chạy được trong C không?
Node khai báo thế nào?
Trong C++ dùng new
NODE* p = new NODE;
Thêm: http://www.cplusplus.com/reference/new/operator%20new/
dạ thanks anh . cấp phát trong dslk á anh.
Code này trong C là không đúng rồi. Node p kia đâu phải con trỏ mà nó cấp phát gì hả bạn. Trong C++ thì sử dụng new là đc.
@ltd code chạy bình thường mà, có thể như vầy chẳng hạn
typedef struct abc {
int a;
}* NODE;
NODE Node;
Mặc dù nhìn hơi tào lao : v
Cưỡng ép là không hạnh phúc bác ơi =))
Vì sizeof(NODE) tương đương với sizeof(a_pointer) và luôn luôn bằng 4 hoặc 8 tùy thuộc vào chương trình compile ở chế độ x86 hay x64.
Ví dụ như code này luôn trả ra 4
#include <iostream>
using namespace std;
typedef struct abc {
int a;
int b;
int c;
}* NODE;
int main()
{
cout << sizeof(NODE);
return 0;
}
Đúng rồi, tại làm cho nó build được thôi. Nhưng muốn hợp lý chỗ size of pointer của bác thì tinh chỉnh lại chút 
typedef struct abc {
int a;
} NODE_type;
typedef NODE_type* NODE;
NODE_type Node;
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?