news 2026/6/10 16:18:25

1.22 - 字符串转换整数 new和malloc的区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
1.22 - 字符串转换整数 new和malloc的区别

目录

1.字符串转换整数

a.核心思想

b.思路

c.步骤

2.new和malloc的区别


1.字符串转换整数

8. 字符串转换整数 (atoi) - 力扣(LeetCode)https://leetcode.cn/problems/string-to-integer-atoi/submissions/693360753/

class Solution { public: int myAtoi(string s) { int i = 0; // 跳过前导空格 while (i < s.size() && s[i] == ' ') { i++; } if (i == s.size()) return 0; // 确定符号 int sign = 1; if (s[i] == '-') { sign = -1; i++; } else if (s[i] == '+') { i++; } // 转换数字 long long result = 0; while (i < s.size() && isdigit(s[i])) { result = result * 10 + (s[i] - '0'); // 检查溢出 if (result * sign > INT_MAX) return INT_MAX; if (result * sign < INT_MIN) return INT_MIN; i++; } return (int)(result * sign); } };

a.核心思想

通过遍历字符串,按照给定的规则逐步解析字符串中的数字字符,将其转换为对应的整数,同时处理符号和溢出情况。

b.思路

① 去除字符串前导空格。

② 确定符号。

③ 遍历字符串,将数字字符转换为数字,直到遇到非数字字符或字符串结束。

④ 检查整数是否溢出,若溢出则进行截断处理。

c.步骤

① 使用指针或索引遍历字符串,跳过前导空格。

② 检查并记录符号。

③ 循环读取数字字符,将其转换为数字并累加到结果中。

④ 在每次累加后检查是否溢出,若溢出则根据符号进行截断。

⑤ 返回最终结果。

2.new和malloc的区别

new

malloc

本质

C++ 的运算符,属于语言内置特性。

C 标准库函数,属于运行时库的一部分。

内存分配和初始化

new会自动调用构造函数初始化对象。

malloc仅分配未初始化的内存,不会调用构造函数。

内存释放

new对应deletedelete会调用对象的析构函数。

malloc对应freefree不会调用析构函数。

参数与返回值

new不需要指定内存大小,返回对应类型的指针。

malloc需要显式指定字节数,返回void*,需强制类型转换。

失败处理

new默认抛出std::bad_alloc异常(可改为返回nullptr)。

malloc失败时返回NULL(或nullptr)。

重载与自定义

new/delete可以被重载,允许自定义内存分配行为。

malloc/free不可重载。

总结

  • C++ 优先用new/delete,因为它们与对象生命周期(构造/析构)无缝集成。

  • malloc/free适用于 C 或需要直接操作内存的场景(如底层开发)。

希望这些内容对大家有所帮助!

感谢大家的三连支持!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 23:46:56

Notion界面革新性优化指南:三维提升法让效率倍增

Notion界面革新性优化指南&#xff1a;三维提升法让效率倍增 【免费下载链接】awesome-obsidian &#x1f576;️ Awesome stuff for Obsidian 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-obsidian Notion作为一款功能强大的一体化工作空间工具&#xff0c;其…

作者头像 李华
网站建设 2026/6/10 15:48:57

3步打造无忧沟通:消息保护工具让撤回功能彻底失效

3步打造无忧沟通&#xff1a;消息保护工具让撤回功能彻底失效 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁&#xff08;我已经看到了&#xff0c;撤回也没用了&#xff09; 项目地址: https://gitcode.com/Gi…

作者头像 李华
网站建设 2026/6/10 14:18:59

游戏自动化工具:从零开始掌握鸣潮智能辅助系统

游戏自动化工具&#xff1a;从零开始掌握鸣潮智能辅助系统 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸上锁合成 自动肉鸽 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves 游戏自动化工具…

作者头像 李华
网站建设 2026/6/10 15:47:24

高效个性化Zotero插件:让文献管理效率提升30%的革新性工具

高效个性化Zotero插件&#xff1a;让文献管理效率提升30%的革新性工具 【免费下载链接】zotero-style zotero-style - 一个 Zotero 插件&#xff0c;提供了一系列功能来增强 Zotero 的用户体验&#xff0c;如阅读进度可视化和标签管理&#xff0c;适合研究人员和学者。 项目地…

作者头像 李华
网站建设 2026/6/10 15:46:44

Emotion2Vec+ Large情感边界模糊问题:Sad vs Neutral区分技巧

Emotion2Vec Large情感边界模糊问题&#xff1a;Sad vs Neutral区分技巧 1. 为什么Sad和Neutral总被搞混&#xff1f; 你上传一段低沉、语速缓慢的语音&#xff0c;系统却返回“&#x1f610; 中性&#xff08;Neutral&#xff09;”&#xff0c;置信度82%——而你明明听出了…

作者头像 李华
网站建设 2026/6/9 18:46:58

批量转换中断怎么办?已生成文件可找回

批量转换中断怎么办&#xff1f;已生成文件可找回 1. 问题背景与使用场景 在使用 AI 工具进行人像卡通化处理时&#xff0c;很多人会遇到一个实际困扰&#xff1a;批量转换过程中突然中断了&#xff0c;之前已经生成的图片还能不能找回来&#xff1f; 比如你上传了 30 张同事…

作者头像 李华