malloc是一个C语言的函数,用于为一些变量分配内存。它还返回一个指针。我们还可以使用Malloc函数来检查关于内存分配的错误。当malloc方法发现自己无法分配内存时,它通常会返回NULL。如果在管理指针时分配失败,你也可以通过一个错误信息。 在本指南中,我们将看到malloc函数的实现,以分配内存和检查内存分配的错误。所以,只要从Linux系统中登录,就可以开始执行。
例1
我们的第一个例子将是在C语言中分配一个内存,同时返回一个指针。用快捷键 "Ctrl+Alt+T "打开你的Linux终端。在你的shell中用 "touch "命令创建一个新文件 "malloc.c",然后在GNU编辑器中打开它。
现在该文件已经在编辑器中打开,添加所需的头文件,如下图所示。我们已经在其中声明了main方法,同时初始化了一个指针 "p"。malloc方法被用来创建一个内存,刚刚创建的内存的大小将被返回给指针 "p"。这是C语言中分配或创建内存的标准语法。"If "语句说明,如果指针值不是NULL,它将打印出内存已被成功创建。
用 "Ctrl+S "保存你的代码文件,用 "Ctrl+S "跳回终端。gcc "编译器已被广泛用于Linux中C文件的编译。我们也将使用它。在执行完一个文件后,我们得到了一个成功的消息。
例2
让我们来看看这个例子,说明如果发生一些错误,系统是如何通过一个异常的。所以,我们在 "GNU "编辑器中打开了同一个文件。在main方法中,我们初始化了一个常数整型变量 "ARRAY_SIZE",表示数组的大小为空。在下一行,我们定义了一个长双数类型的指针。ARRAY_SIZE值被用来创建一个内存,并返回到一个指针 "p"。如果指针的值等于NULL,系统将打印出错误已经发生,系统已经没有内存了。同时,程序将被终止。如果 "if "语句出错,外部打印语句将被执行。
让我们先在Linux shell中用gcc编译器编译malloc.c文件,然后执行它。由于常量整数变量 "ARRAY_SIZE "中定义的值为空。因此,它抛出了一个错误,显示系统没有内存了。
例3
让我们再来看看C语言中malloc方法的工作原理。在编辑器中打开新文件 "new.c"。所有需要的头文件都已经包括在内。main方法被用来初始化一个整数变量 "n"。print语句被用来要求用户输入任何需要的数字。scanf方法被用来获取用户输入的值,并将该值与变量 "n "绑定。malloc函数被用来检查内存的创建,并返回一个指针 "p"。同样的检查也被用在NULL指针值上。第一个 "for "循环从用户那里获得输入,并将其与指针值相加。另一个 "for "循环被用来打印出汇总值。
编译和执行的过程如下。用户输入数值并得到结果。
我们已经更新了代码,并给变量 "n "分配了一个空值,以查看变化。
由于内存大小没有被定义,编译后的执行显示错误信息 "内存不可用"。
总结
本教程包含了最好的例子,这些例子将帮助你看到malloc方法是如何工作的,以识别内存分配问题时的错误。我们希望你在执行malloc函数时没有任何问题。