C语言malloc动态分配内存分配失败怎么办?exit(OVERFLOW);(include <cstdlib>)

Posted Dontla

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言malloc动态分配内存分配失败怎么办?exit(OVERFLOW);(include <cstdlib>)相关的知识,希望对你有一定的参考价值。

如:(见《大话数据结构》147页)

QueuePtr s = (QueuePtr)malloc(sizeof(QNode));
if(!s){
	exit(OVERFLOW);
}

在这里插入图片描述

exit为C++的退出函数,声明于stdlib.h中,对于C++其标准的头文件为cstdlib,声明为
void exit(int value);
exit的功能为,退出当前运行的程序,并将参数value返回给主调进程。
在main中return v;的效果 与exit(v);相同。
OVERFLOW为math.h中的一个宏定义,其值为3。含义为运算过程中出现了上溢,即运算结果超出了运算变量所能存储的范围。
所以,exit(OVERFLOW)的含义就是,退出程序,并返回OVERFLOW的值给主调进程。其标准的使用范围为,当程序运算出现上溢时,退出程序并报错给主调进程。

参考文章:exit(OVERFLOW); 在C++中是什么意思?

另外:如果if语句后只有一条语句,则可以省略大括号

加上大括号相当于一个语句块,if条件只影响其后面的第一个语句或语句块,加括号的话,则执行括号中的全部语句(也就是在if条件成立的情况下,则全部执行,如果if条件不成立,则整个括号中的语句都不执行);而不加括号的话,则影响其后的第一条语句,也就是说不管if条件成不成立,第一句以后的都不会有任何影响。if 语句后有大括号, 则大括号里面所有的语句都会在if表达式为真时执行;如果没大括号,则if表达式为真时只会执行第一条语句.

参考文章:C语言,一个小问题,为什么在if后面一直都没有花括号?

注意调用库时后面别加.h,否则提示找不到
在这里插入图片描述
参考文章:急!!!C++中调用不了<cstdlib.h>库中的数学函数!!!

以上是关于C语言malloc动态分配内存分配失败怎么办?exit(OVERFLOW);(include <cstdlib>)的主要内容,如果未能解决你的问题,请参考以下文章

怎么查看动态分配内存空间的大小(c语言)。

C语言中动态内存分配函数的用法及作用?(比如malloc,calloc,realloc等)

c语言中啥是动态分配内存?

C语言动态数据结构

c语言 动态内存规划

c语言 动态内存规划