如果程序需要在运行的过程中动态分配内存，可以利用堆（Heap）来实现。基本上C程序的元素存储在内存的时候有3种分配策略：如果一个变量声明为全局变量或者是函数的静态变量，这个变量的存储将使用静态分配方式。静态分配的内存一般会被编译器放在数据段或代码段来存储，具体取决于实现。这样做的前提是，在编译时就必须确定变量的大小。以IA32的x86平台及gcc编译器为例，全局及静态变量放在数据段的低端；全局及静态常量放在代码段的高端。函数的自动局部变量应该随着函数的返回会自动释放（失效），这个要求在一般的