如何将值添加到在 C++ 中有两个指针的嵌套结构中
How to add values into a nested structure which has two pointers inside in C++
struct stable_item
{
char* name;
char* scope;
int permission;
};
struct stable
{
stable_item* item;
stable * next;
stable * prev;
};
stable* head;
//structures created
stable *GetNewNode() {
stable *newNode = new stable();
newNode->item;
newNode->next = NULL;
newNode->prev = NULL;
return newNode;
};
void insert_stable()
{
stable *newNode = GetNewNode();
if (head == NULL) {
head = newNode;
return;
}
head->prev = newNode;
newNode->next = head;
head = newNode;
}
void update_item()
{
struct stable_item *newItem = (struct stable_item*)malloc(sizeof(struct stable_item));
head->item->permission;
head->item->name == NULL;
head->item->scope = NULL;
};
我无法将值插入到 C++ 中的嵌套结构中。
我将更新结构stable_item中名称、范围和权限的信息。但是由于另一个结构体中有一个指针项stable,我目前对实现这个任务的方式很困惑。也许我需要先声明一个 struct stable_item 的对象?
谁能帮我看看有哪些可能的改进?
简单的给newNode->item
分配一些内存,如下图
stable *GetNewNode(){
stable *newNode = new stable();
--> newNode->item = new stable_item(); // Do this as you've done above
> newNode->item->name = NULL;
> newNode->item->scope = NULL;
> newNode->item->permission = 0;
newNode->next = NULL;
newNode->prev = NULL;
return newNode;
}
void update_item(int perm, const char* name, const char* scope){
> struct stable_item *newItem = new stable_item();
> head->item->permission = perm;
> head->item->name = new char[1+strlen(name)];
> strcpy(head->item->name, name);
> head->item->scope = new char[1+strlen(scope)];
> strcpy(head->item->scope, scope);
}
struct stable_item
{
char* name;
char* scope;
int permission;
};
struct stable
{
stable_item* item;
stable * next;
stable * prev;
};
stable* head;
//structures created
stable *GetNewNode() {
stable *newNode = new stable();
newNode->item;
newNode->next = NULL;
newNode->prev = NULL;
return newNode;
};
void insert_stable()
{
stable *newNode = GetNewNode();
if (head == NULL) {
head = newNode;
return;
}
head->prev = newNode;
newNode->next = head;
head = newNode;
}
void update_item()
{
struct stable_item *newItem = (struct stable_item*)malloc(sizeof(struct stable_item));
head->item->permission;
head->item->name == NULL;
head->item->scope = NULL;
};
我无法将值插入到 C++ 中的嵌套结构中。
我将更新结构stable_item中名称、范围和权限的信息。但是由于另一个结构体中有一个指针项stable,我目前对实现这个任务的方式很困惑。也许我需要先声明一个 struct stable_item 的对象?
谁能帮我看看有哪些可能的改进?
简单的给newNode->item
分配一些内存,如下图
stable *GetNewNode(){
stable *newNode = new stable();
--> newNode->item = new stable_item(); // Do this as you've done above
> newNode->item->name = NULL;
> newNode->item->scope = NULL;
> newNode->item->permission = 0;
newNode->next = NULL;
newNode->prev = NULL;
return newNode;
}
void update_item(int perm, const char* name, const char* scope){
> struct stable_item *newItem = new stable_item();
> head->item->permission = perm;
> head->item->name = new char[1+strlen(name)];
> strcpy(head->item->name, name);
> head->item->scope = new char[1+strlen(scope)];
> strcpy(head->item->scope, scope);
}