<cstdlib>库

<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 0
    std::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 2
    ptr = (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 4
      std::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;
}
posted @ 2024-12-18 20:21  White_ink  阅读(85)  评论(0)    收藏  举报