You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++中替代malloc()函数的链表节点内存分配方案

C语言链表插入代码转C++实现(替换malloc)

原C代码里的malloc(sizeof(struct node))在C中可以直接用new关键字替代,这是C更类型安全、更符合语言特性的内存分配方式。

替换后的完整C++代码如下:

struct node *newNode;
newNode = new node; // 替换malloc的核心语句
newNode->data = 4;
newNode->next = head;
head = newNode;

几点说明:

  • new会自动计算所需内存大小,无需手动写sizeof(struct node),避免因类型变更导致的计算错误
  • new直接返回对应类型的指针,不需要像malloc那样做强制类型转换(malloc返回void*,C++里隐式转换指针会报错)
  • 如果后续需要释放这个节点的内存,要使用delete newNode;而非C语言的free,否则可能引发未定义行为

内容的提问来源于stack exchange,提问作者willy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 22:10:30