news 2026/3/26 14:00:06

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/3/11 19:41:56

Z-Image-Turbo中文提示词优化:让生成更符合语境

Z-Image-Turbo中文提示词优化&#xff1a;让生成更符合语境 你有没有遇到过这种情况&#xff1f;输入了一段精心构思的中文描述&#xff0c;结果AI生成的图片却“答非所问”——人物动作奇怪、场景错乱、细节缺失。这并不是模型能力不行&#xff0c;而是提示词没写对。 Z-Ima…

作者头像 李华
网站建设 2026/3/15 14:12:19

如何让聊天记录成为永恒?这款神器让数字记忆永不褪色

如何让聊天记录成为永恒&#xff1f;这款神器让数字记忆永不褪色 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChat…

作者头像 李华
网站建设 2026/3/24 2:38:13

IQuest-Coder-V1值得入手吗?部署前必看实战指南

IQuest-Coder-V1值得入手吗&#xff1f;部署前必看实战指南 1. 这不是又一个“能写代码”的模型&#xff0c;而是真正懂软件工程的搭档 你可能已经试过不少代码大模型&#xff1a;输入一段注释&#xff0c;它能补全函数&#xff1b;扔个报错信息&#xff0c;它能给出修复建议…

作者头像 李华
网站建设 2026/3/26 2:59:27

搜索引擎优化脚本深度评测:如何通过浏览器脚本重构搜索引擎体验

搜索引擎优化脚本深度评测&#xff1a;如何通过浏览器脚本重构搜索引擎体验 【免费下载链接】GM_script 我就是来分享脚本玩玩的 项目地址: https://gitcode.com/gh_mirrors/gm/GM_script 在信息爆炸的时代&#xff0c;搜索引擎作为获取知识的主要入口&#xff0c;其体验…

作者头像 李华
网站建设 2026/3/26 12:36:40

自动驾驶实战:用PETRV2-BEV模型实现多视角3D目标检测

自动驾驶实战&#xff1a;用PETRV2-BEV模型实现多视角3D目标检测 1. 引言&#xff1a;为什么BEV是自动驾驶感知的关键&#xff1f; 在自动驾驶系统中&#xff0c;如何让车辆“看懂”周围环境&#xff0c;准确识别出每一辆汽车、每一个行人、每一根路桩&#xff0c;是决定安全…

作者头像 李华