本文主要是介绍分配内存malloc和free(),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
所有的程序都必须留出足够的内存来存储它们使用的数据。一些内存分配是自动完成的。在运行时需要分配更多的内存。主要的工具是函数malloc(),它接受一个参数:所需要内存字节数。然后malloc找到可用内存中一个大小合适的块。内存是匿名的;也就是说,malloc()分配了内存,但没有为它指定名字。然而,它却可以返回那块内存第一个字节的地址。因此,可以把那个地址赋值给一个指针变量,并使用该指针来访问那块内存。
char place[] = "Dancing Oxen Creek";
因为char代表一个字节,所以传统上曾将malloc定义为指向char的指针类型。
在ANSI C标准使用中使用了一个新的类型:指向void的指针。这一类型被用作“通用指针”。函数malloc()可用来返回数组指针、结构指针等等,因此一般需要把返回值的类型指派为适当的类型。在ANSI C中,为了程序清晰应对指针进行类型指派,但将void指针值赋值给其他类型的指针并不构成类型冲突。如果malloc()找不到所需要的空间,他将返回空指针。
使用malloc创建一个数组。可以在程序运行时使用malloc()请求一个存储块,另外还需要一个指针来存放该块在内存中的位置。
double * ptd;
ptd = (double *) mal
这篇关于分配内存malloc和free()的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!