相关疑难解决方法(0)

C:结构定义中指向struct的指针

如何在此结构的定义中指向下一个结构的指针:

typedef struct A {
  int a;
  int b;
  A*  next;
} A;
Run Code Online (Sandbox Code Playgroud)

这是我第一次写它但它不起作用的方式.

c struct pointers

51
推荐指数
5
解决办法
7万
查看次数

Typedef,标记和未标记的结构以及不兼容的指针类型

请考虑以下C代码段:

typedef struct node{
    int val;
    struct node* left;
    struct node* right;
}node;

void inorderTraversal(node *p){
    inorderTraversal(p->left);
    printf("%d",p->val);
    inorderTraversal(p->right);
}
Run Code Online (Sandbox Code Playgroud)

如果我只写typedef struct,而不是typedef struct node,我得到一个警告说"通过兼容的指针类型的参数"当我打电话inorderTraversal(root)main().为什么即使程序没有显示任何错误,我也会收到此警告?

c struct typedef

8
推荐指数
1
解决办法
1万
查看次数

指向自我的C结构

是否可以定义一个带有指向该类型结构的指针的结构?我的意思是:

typedef struct {
    char* name;
    node* parent;
} node;
Run Code Online (Sandbox Code Playgroud)

就我尝试或阅读而言,我不知道该怎么做或者甚至可能.

c struct

6
推荐指数
2
解决办法
7058
查看次数

下一个结构项,不完整类型

struct node{  
    struct node next;  
    int id;  
}
Run Code Online (Sandbox Code Playgroud)

给出"下一个字段有不完整的类型错误".

这个结构有什么问题?

c struct field linked-list

5
推荐指数
2
解决办法
6564
查看次数

为什么结构不能拥有与自身类型相同的成员?

我一直在理解这个结构发生了什么(来自C for ProgrammersDeitel的书).

该书说:"结构不能包含自身的实例.例如,struct employee不能在定义中声明类型的变量struct employee.但是,可以包含指向struct employee的指针."

然后给出以下示例:

struct employee2 {
   char firstName[ 20 ];

   char lastName[ 20 ];

   unsigned int age;

   struct employee2 *ePtr;
};
Run Code Online (Sandbox Code Playgroud)

我不明白这是做什么的,我不明白struct employee没有2 的参考.

我怎么struct employee2 *ePtr知道struct employee或者我不在这里?

c struct

5
推荐指数
2
解决办法
4099
查看次数

为什么结构不能包含自身的实例?

我读到了c ++中的结构,它不能包含自身的实例.任何人都可以帮助我理解为什么它不能包含自身的实例?

c++ structure

4
推荐指数
3
解决办法
4962
查看次数

递归结构

我是否需要使用typedef才能构建递归结构?我尝试使用以下代码但没有成功:

struct teste
{
    int data;
    int data2;
    struct teste to_teste;
};
Run Code Online (Sandbox Code Playgroud)

c struct recursive-datastructures

3
推荐指数
2
解决办法
8403
查看次数

C语言中的结构指针

这段代码中的错误是什么?为什么我不能按照我尝试的方式取消引用元素.

#include<stdio.h>
typedef struct
{
    int value;
    struct node * left;
    struct node * right;
} node;

int main() {
    node* root,*temp;
    root = (node*) malloc(sizeof(node));
    root->value = 10;
    (root->left)= (node*) malloc(sizeof(node));
    (root->right)=(node*) malloc(sizeof(node));
    ((root->left)->value) =20;   // WHY AN ERROR HERE???
}   
Run Code Online (Sandbox Code Playgroud)

c pointers data-structures

2
推荐指数
1
解决办法
215
查看次数

C++ 11初始化对象的指针列表

编辑:这个结构是真正糟糕的设计,不要使用它!

是否可以在C++ 11中初始化一个指向对象的指针列表(同时初始化所有内容)?

例如,假设我想要创建my_list哪种类型:

list<pair<string, map<string, string> *> *>.

我想用原始值初始化它.

list<pair<string, map<string, string> *> *> my_list = { ??? }

???:创建新的指针到新的对原始字符串和新指针的原始字符串的地图.

(为什么我需要这样做:这个数据结构存储从文件中读取的配置,但如果找不到该文件,我的代码中需要一个默认值)

c++ pointers initialization c++11

1
推荐指数
1
解决办法
668
查看次数

我可以从内部调用结构吗?

我想知道它是否可以在C++中实现:

struct Hello
{ 
    Hello A, B;
};
Run Code Online (Sandbox Code Playgroud)

我将不胜感激任何帮助

c++ c++11

1
推荐指数
1
解决办法
81
查看次数

C递归typedef结构

#include <stdio.h>
#include <stdlib.h>

#define MAX_ELEMENT 100

typedef struct TreeNode{
    int weight;
    TreeNode *left_child;
    TreeNode *right_child;
} TreeNode;

typedef struct element{
    TreeNode *ptree;
    int key;
} element;

typedef struct HeapType{
    element heap[MAX_ELEMENT];
    int heap_size;
} HeapType;
Run Code Online (Sandbox Code Playgroud)

我得到了错误:

error: unknown type name ‘TreeNode’
     TreeNode *left_child;
error: unknown type name ‘TreeNode’
     TreeNode *right_child;
Run Code Online (Sandbox Code Playgroud)

我不明白为什么……你能解释一下吗?

c

1
推荐指数
1
解决办法
126
查看次数

什么是C中的自引用结构?

struct LinkedList  
{  
    int data;
    struct LinkedList *next;
};
Run Code Online (Sandbox Code Playgroud)

在代码中,在定义中struct LinkedList有一个指向结构本身的指针.

它是如何工作的?

c structure linked-list

0
推荐指数
1
解决办法
2881
查看次数