C語言內存分配的方式有兩種:靜態內存分配和動態內存分配。
靜態內存分配:在程序編譯時,編譯器會為全局變量和靜態局部變量分配固定的內存空間。這些變量在程序運行期間一直存在,直到程序結束。靜態內存分配是自動進行的,不需要程序員手動管理。
動態內存分配:動態內存分配是在程序運行時根據需要動態地為變量分配內存空間。動態內存分配通常使用malloc、calloc、realloc和free等函數來管理。malloc函數用于分配指定字節數的內存空間,calloc函數用于分配指定數量和大小的連續內存空間,realloc函數用于重新分配已分配內存的大小,free函數用于釋放已分配的內存空間。
動態內存分配適合于需要在程序運行過程中動態創建、釋放和修改內存空間大小的情況,但需要程序員手動管理內存的分配和釋放,否則可能會造成內存泄漏或者懸空指針等問題。