【问题标题】:Creating Struct node on c++在 C++ 上创建结构节点
【发布时间】:2014-06-22 03:09:10
【问题描述】:

我对 struct 有一些疑问。

  struct node
    {
        int data;
        node* next;
    }node; <---- what does this actually do? 

谢谢。

添加::

您好,正在尝试修复此错误..

第 11 行:错误:预期的构造函数、析构函数或在“*”标记之前的类型转换 编译因 -Wfatal-errors 而终止。

#include <iostream>

using namespace std;

struct node
{
    int data;
    node* next;
}node;

node* nodeNew(int newData, node* newNext) // line 11
{
    node* n= new node;
    n->data= newData;
    n->next= newNext;
    return n;
}

void listPrint(node* p)
{
    while( p!=NULL )
    {
        cout << p->data << " "; p= p->next;
    }
}

int main()
{


}

当我在结构中添加那个“节点”时会发生。

【问题讨论】:

  • 你在标题中说过。创建一个节点。
  • 这意味着您声明了一个名为node 的变量(其类型为node)。

标签: c++


【解决方案1】:

最后一行:

}node;

创建一个类型为struct node 的变量,命名为node。相当于:

  struct node {
        int data;
        node* next;
   };
   struct node node;

编辑:响应您的编辑,该行:

node* nodeNew(int newData, node* newNext)

出错,因为 node 不是类型。将其更改为:

struct node* nodeNew(int newData, struct node* newNext)

或将结构声明更改为:

  typedef struct node node;
  struct node {
        int data;
        node* next;
   };

【讨论】:

  • 我编辑以解决您的编辑问题。此外,如果您发现此答案有帮助,请考虑接受它(upvote/downvote 按钮附近的箭头)。
  • 嗨帕特里克感谢您的快速响应。我尝试将“struct node* nodeNew(int newData, node* newNext)”放在第 11 行:错误:'node' 不是类型。 . 嗯
  • 我试图在 main() 处执行 nodeNew(int newData, node* newNext) 它不会工作.. 嗯
  • @StevenMeowDeClaude node 从来都不是类型。您需要将 node* 的所有实例更改为 struct node*,包括 nodeNew 内部 - 但如果您只是 typedef 它会更容易。
  • 好吧.. 非常感谢帕特里克.. 我设法减少了我的错误.. =D
【解决方案2】:

确切地说,它从给定范围内的给定结构创建一个对象。 “变量”这个词太笼统了。

【讨论】:

    猜你喜欢
    • 2013-05-03
    • 2017-01-06
    • 1970-01-01
    • 2019-02-17
    • 2021-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    相关资源
    最近更新 更多