c - 结构指针到底是什么意思
问题描述
struct Node
{
int data;
struct Node* left, *right;
};
这究竟是什么意思struct Node *
?下面的函数是否返回指向节点的指针?
struct Node* newNode(int data)
{
struct Node* node = new(struct Node);
node->data = data;
node->left = node->right = NULL;
return (node);
}
解决方案
struct Node;
是您的结构的名称。
这个 struct Node* 到底是什么意思?
struct Node* node;
您正在声明一个指向Node
需要分配一些内存的结构的指针。C中没有new
关键字。您需要使用它malloc()
来分配所需的内存字节。你可以这样分配:
struct Node* node = (struct Node *)malloc(sizeof(struct Node));
它是否返回指向节点的指针?
这一行:
return (node);
返回struct Node*
函数的类型。
推荐阅读
- flutter - Flutter:页面重建不合逻辑
- python - spark-submit 在集群模式下失败,错误 13,pyspark 作业的权限被拒绝
- c# - 如何从 webclient C# 向组合框添加范围?
- python-3.x - 使用 Python Poetry 和 VS Code 的 SSH 插件进行调试
- html - 我所有的 li 菜单项关闭菜单不做他们应该做的事
- css - React css 模块 - 将样式应用于原生 html 标签
- excel - 自动关闭消息框 intReturn = objShell.Popup 有时会挂起
- shiny - geom_smooth 未显示在 ggplot 函数中
- reactjs - 在反应中反应钩子的推荐方式
- c# - 如何从 struct asp.net c# 将项目添加到下拉列表