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
相关产品推荐
相关产品推荐

