news 2026/10/15 7:40:07

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对应delete,delete会调用对象的析构函数。

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

参数与返回值

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/10/13 18:49:33

告别肝帝模式:3步释放90%游戏时间的秘密武器

告别肝帝模式&#xff1a;3步释放90%游戏时间的秘密武器 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸上锁合成 自动肉鸽 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves 在鸣潮的世界里&a…

作者头像 李华
网站建设 2026/10/11 0:30:50

云盘优化工具技术解析:从原理到实战的本地脚本开发指南

云盘优化工具技术解析&#xff1a;从原理到实战的本地脚本开发指南 【免费下载链接】123pan_unlock 基于油猴的123云盘解锁脚本&#xff0c;支持解锁123云盘下载功能 项目地址: https://gitcode.com/gh_mirrors/12/123pan_unlock 在云存储广泛应用的今天&#xff0c;用户…

作者头像 李华
网站建设 2026/10/12 4:28:43

Z-Image-Turbo提示词进阶写法:精准控制画面

Z-Image-Turbo提示词进阶写法&#xff1a;精准控制画面 你有没有试过这样输入提示词&#xff1a;“一个穿旗袍的女士在老上海街道上走路”&#xff0c;结果生成的图里人像模糊、背景像水墨画、旗袍颜色偏绿&#xff0c;连街道都看不出年代感&#xff1f;不是模型不行&#xff…

作者头像 李华
网站建设 2026/10/10 20:39:24

小白也能玩转AI绘图!麦橘超然离线控制台保姆级教程

小白也能玩转AI绘图&#xff01;麦橘超然离线控制台保姆级教程 1. 这不是另一个“需要RTX 4090”的AI工具 你是不是也经历过这些时刻&#xff1f; 看到别人用AI画出惊艳的赛博朋克街景&#xff0c;自己却卡在第一步&#xff1a;下载模型要20GB、显存爆红报错、界面密密麻麻全…

作者头像 李华
网站建设 2026/10/11 9:33:31

惊艳!Meta-Llama-3-8B-Instruct生成的英语对话案例展示

惊艳&#xff01;Meta-Llama-3-8B-Instruct生成的英语对话案例展示 1. 引言&#xff1a;为什么这款模型值得一试&#xff1f; 你有没有遇到过这样的情况&#xff1a;想训练一个英文对话机器人&#xff0c;但大模型太吃显卡&#xff0c;小模型又“答非所问”&#xff1f;现在&…

作者头像 李华