在C語(yǔ)言中,有三種常見(jiàn)的方法來(lái)定義數(shù)組:
int arr[5]; // 定義一個(gè)包含5個(gè)整數(shù)的數(shù)組
這種方法在編譯時(shí)確定數(shù)組的大小。數(shù)組的大小是固定的,不能在運(yùn)行時(shí)更改。
malloc
或calloc
)定義數(shù)組:#include <stdlib.h>
int* arr;
int size = 5;
arr = (int*) malloc(size * sizeof(int)); // 使用malloc分配內(nèi)存
// 或者
arr = (int*) calloc(size, sizeof(int)); // 使用calloc分配并初始化為0
這種方法在運(yùn)行時(shí)確定數(shù)組的大小。你可以根據(jù)需要調(diào)整數(shù)組的大小,但請(qǐng)注意,在使用完數(shù)組后,需要使用free()
函數(shù)釋放內(nèi)存。
int size = 5;
int arr[size]; // 定義一個(gè)包含5個(gè)整數(shù)的數(shù)組
這種方法允許在運(yùn)行時(shí)確定數(shù)組的大小。請(qǐng)注意,VLA的大小在運(yùn)行時(shí)是固定的,不能在運(yùn)行時(shí)更改。同時(shí),VLA在棧上分配內(nèi)存,因此可能會(huì)導(dǎo)致棧溢出。