ISO/IEC TR 24731-2:2010
Information technology -- Programming languages, their environments and system software interfaces -- Extensions to the C library -- Part 2: Dynamic Allocation Functions
发布时间:2010-11-24 实施时间:


动态分配函数是C语言中最常用的函数之一,它们用于在程序运行时动态地分配内存空间。这些函数包括malloc、calloc、realloc和free等。在C语言中,静态分配的内存空间是在编译时分配的,而动态分配的内存空间是在程序运行时分配的。动态分配函数的使用非常广泛,例如在创建动态数据结构、读取文件、网络编程等方面都需要使用它们。

然而,由于不同的系统和平台实现动态分配函数的方式不同,因此在不同的系统和平台上使用这些函数时可能会出现问题。例如,在某些系统上,malloc函数返回的指针可能不是8字节对齐的,这可能会导致性能问题或者内存泄漏。为了解决这些问题,ISO/IEC TR 24731-2:2010标准对动态分配函数进行了扩展,以提高它们的可移植性和互操作性。

该标准主要包括以下内容:

1. 扩展了malloc函数,使其能够返回8字节对齐的指针。这可以提高程序的性能,并减少内存泄漏的可能性。

2. 扩展了calloc函数,使其能够在分配内存时自动清零。这可以避免程序在使用未初始化的内存时出现问题。

3. 扩展了realloc函数,使其能够在分配内存时保留原有的数据。这可以避免程序在重新分配内存时丢失原有的数据。

4. 扩展了free函数,使其能够处理空指针。这可以避免程序在释放空指针时出现问题。

通过这些扩展,ISO/IEC TR 24731-2:2010标准提高了动态分配函数的可移植性和互操作性,使得它们可以在不同的系统和平台上使用。

相关标准
ISO/IEC 9899:2011 Programming languages -- C

ISO/IEC 9899:1999 Programming languages -- C

ISO/IEC 10646:2014 Information technology -- Universal Coded Character Set (UCS)

ISO/IEC 14882:2017 Programming languages -- C++

ISO/IEC 19770-1:2017 Information technology -- Software asset management -- Part 1: Processes and tiered assessment of conformance