当前位置:首页 > 代码相关 > 正文内容

C语言malloc()函数

admin9个月前 (08-04)代码相关187

C语言中malloc()函数,用于分配所需的内存,并返回一个指向该内存的指针。注意这是C的标准库函数,不是C的关键字,在<stdlib.h>头文件下。

函数声明: void *malloc(size_t size)

其中,size是要分配的内存的大小,单位是字节。返回一个指针 ,指向已分配大小的内存,若请求分配内存失败,则返回NULL。

注意:void * 类型,表示未确定类型的指针。C、C++ 规定 void * 类型可以通过类型转换强制转换为任何其它类型的指针。

这样就可以理解下面这行代码了:

int* p = (int*)malloc(sizeof(int));

通过malloc函数,申请了一个int类型的空间(不同平台下int类型所需的空间不一定相同,使用sizeof,以提高程序的可移植性),通过malloc函数申请的空间,系统将返回该段空间的首地址,所以malloc(sizeof(int))的值是指针类型的,但是上面说过,返回值void* 代表未确定类型的指针 ,而需要的类型是int类型,所以要将malloc(sizeof(int))的值强制转换为int类型的指针。

版权声明:本文由cyhu's essay发布,如需转载请注明出处。

本文链接:https://lovedm.club/?id=68

相关文章

C# 返回值是接口的方法

今天写PIE二次开发加载栅格数据的时候发现类中方法的返回值是接口,之前没怎么写过,在此记录一下。在例子中设计一个接口 ICalculate ,接口中有两个方法, Add() 和 Div() ...

C# 与文件相关的几个类(3)

Path类,处理文件或路径的类,是一个静态类。方法:PathChangeExtension(String, String)更改路径字符串的扩展名。返回值为string。Combine(String,...

C# WPF程序 显示时间

C# WPF程序 显示时间

例子来源于此视频https://www.bilibili.com/video/av1422127?p=4 此例子是想说明有的类主要使用它的事件namespace Wpf_test { &...

C# Lambda表达式

简单用法,一句一句来,便于理解 Func<int, int, int> func = new Func<int, int, int>((int a, int b) =...

C# 正则表达式(2)

// pattan = @"[^ahou]"; 表示匹配除ahou之外的字符,^在表示反义 string res4 =...

C#(或者Java)反转数组

将原数组反转,如[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]反转后变为[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]因为数组是引用类型,所以直接在方法中处理即可,C#和J...