cstdlib库

news/2024/12/18 20:22:18/文章来源:https://www.cnblogs.com/whiteink/p/18615794

<cstdlib>

内存分配

malloc() 在堆上分配指定字节数的内存空间

#include <cstdlib>
#include <iostream>
int main() {int* ptr = (int*)malloc(sizeof(int));if (ptr!= nullptr) {*ptr = 10;//*号取值std::cout << *ptr << std::endl;free(ptr); }return 0;
}

malloc()分配了足够存储一个int类型的内存空间
如果分配成功,它返回一个指向该内存块的指针(void*类型,所以需要进行类型转换
free()函数用于释放由malloc()分配的内存,以避免内存泄漏

calloc()与malloc()类似,

#include <cstdlib>
#include <iostream>
int main() {int* ptr = (int*)calloc(5, sizeof(int));//注意这里的5->数组if (ptr!= nullptr) {for (int i = 0; i < 5; ++i) {std::cout << ptr[i] << " ";}//输出->0 0 0 0 0std::cout << std::endl;free(ptr);}return 0;
}

realloc() 调整已被分配的内存块大小

#include <cstdlib>
#include <iostream>
int main() {int* ptr = (int*)malloc(3 * sizeof(int));if (ptr!= nullptr) {for (int i = 0; i < 3; ++i) {ptr[i] = i;}//-> 0 1 2ptr = (int*)realloc(ptr, 5 * sizeof(int));if (ptr!= nullptr) {for (int i = 3; i < 5; ++i) {ptr[i] = i;}for (int i = 0; i < 5; ++i) {std::cout << ptr[i] << " ";}//-> 0 0 0 3 4std::cout << std::endl;free(ptr);}}return 0;
}

程序终止

exit()立即终止程序的执行 会执行一些清理操作

#include <cstdlib>
#include <iostream>
int main() {std::cout << "Before exit" << std::endl;exit(0);//参数【退出状态】:0 通常表示正常退出,非 0 值表示异常退出std::cout << "After exit (This line will not be executed)" << std::endl;return 0;
}

_Exit() 不会执行任何清理操作

数值转换

atoi()将字符串转换为整数

#include <cstdlib>
#include <iostream>
int main() {char str[] = "123";int num = atoi(str);std::cout << num << std::endl;return 0;
}

atol() 长整数

atof() 浮点数

随机数生成

rand() 生成一个伪随机整数

srand() 生成一个随机整数种子

#include <cstdlib>
#include <iostream>
#include <ctime>
int main() {srand(static_cast<unsigned int>(time(nullptr)));//通过time(nullptr)获取当前时间的秒数,转换为unsigned int类型后作为srand()的参数for (int i = 0; i < 5; ++i) {std::cout << rand() << " ";}std::cout << std::endl;return 0;
}

系统相关

system()

//举例:在Linux环境下
#include <cstdlib>
#include <iostream>
int main() {int result = system("ls");//执行ls命令std::cout << "System command return value: " << result << std::endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/855010.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

批量数据传入数据库方法方案

前端处理好的数据,不是1笔2笔的问题,而是每次几笔或是大批量数据传入数据库。实际上,还是讲求效率与性能。在Insus.NET的博客中,找到几篇以前的随笔,1 使用SqlBulkCopy导入数据至MS SQL Server https://www.cnblogs.com/insus/p/3779879.html 2 ASP.NET MVC一次删除多…

玩家结构体和枚举

玩家结构体包含了玩家类型,玩家位置,玩家初始化构造函数还有画自己的函数方法玩家结构体 enum E_PlayerType//玩家类型的枚举 {Player,Robot, } struct Player {public E_PlayerType type;//用地图上的索引代替坐标public mapIndex;public Player(int index,E_PlayerType typ…

Windows Server 2019 配置PHP环境(图文教程)

操作系统:Windows Server 2019运行模式:IIS10 + fastcgi + PHP(安装IIS的时候选择上CGI)软件版本:MySQL 5.7.37 解压版 / PHP 7.4.29 / PHP Manager 1.5.0 / phpMyAdmin 5.1.31、MySQL 5.7.37 解压版安装: 为什么我会选择解压版而不是安装版?一是因为安装版没有64位版本…

微服务的终极 Golang 框架:GoFr

微服务的终极 Golang 框架:GoFr 原创 南丞 PFinalClub2024年12月18日 13:18 上海PFinalClub 一个有信念者所开发出的力量,大于99个只有兴趣者。 113篇原创内容公众号微服务的终极 Golang 框架:GoFr 前言 Go 语言因其出色的并发处理能力和简洁的语法,成为开发微服务的理想选…

R机器学习:朴素贝叶斯算法的理解与实操

最近又看了很多贝叶斯算法的一些文章,好多的文章对这个算法解释起来会放一大堆公式,对代数不好的人来说真的很头疼。本文尝试着用大白话写写这个算法,再做个例子,帮助大家理解和运用。Naive Bayes is a probabilistic machine learning algorithm based on the Bayes Theor…

[Linux]线程

线程 页表 每个进程都有一个虚拟地址空间,虚拟地址通过页表的映射找到对应的物理地址。那页表是如何完成虚拟地址到物理地址的映射的呢?其实一个程序在磁盘上的时候就以4KB为单位被划分成块,每一块称为页帧;而物理内存同样是以4KB为单位被划分,每一块称为页框。所以程序都…

Java框架 —— SpringMVC

MVC 分层MVC:Model View Controller(模型-视图-控制器)模型(Model):处理数据逻辑的部分;在web应用中,他通常包含与数据库交互的代码,负责数据的存储、检索和更新视图(View):将数据渲染为用户界面,视图只展示页面,不包含业务逻辑控制器(Controller):模型和视图…

2024-12-18 17 55 记录 Cambly trip`s summary and wher 1607b517085581159d14fe7750337be7

2024-12-18 17:55 记录 Cambly trip`s summary and where is the next ?https://tingwu.aliyun.com/doc/transcripts/g2y8qevxaayxnbeo?sl=1# 《2024-12-18 17:55 记录 Cambly trip`s summary and where is the next ?》1. 全文摘要 对话讲述了一个人通过使用美好的旅行来…

实验六 模板类、文件I/O和异常处理

1、实验任务一 Complex.hpp#pragma once#include <iostream> #include <stdexcept>// 声明 //////////////////////////////////////////////////// // 复数模板类声明 template<typename T> class Complex { public:Complex(T r = 0, T i = 0);Complex(cons…

免费设计Logo的新神器Slea.ai

使用Slea.ai,你可以在几分钟内设计出专业、高质量的Logo,支持多种场景应用,免费下载,实现自定义设计。品牌打造从未如此轻松!作为一名注重品牌形象的创作者或企业主,你是否苦于设计一款专业又独特的Logo?今天我要向大家推荐一个超级实用的网站——Slea.ai,它是一款免费的…

MOS管的寄生电容

我们经常看到,在电源电路中,功率MOS管的G极经常会串联一个小电阻,几欧姆到几十欧姆不等,那么这个电阻用什么作用呢? 这个电阻的作用有2个作用:限制G极电流,抑制振荡。 限制G极电流MOS管是由电压驱动的,是以G级电流很小,但是因为寄生电容的存在,在MOS管打开或关闭的时…