記憶體分配靜態陣列

2021-08-11 09:53:25 字數 699 閱讀 1331

#include#include//-------靜態陣列---------

void main1()

//增加 查詢 刪除 修改

int a[10];

int length = 10;

void main2()

int num = 3;//刪除陣列裡的3

for (int i = 0; i < length; i++)//判定要刪除的物件是不是最後乙個,是的話直接長度-1

else

length = length - 1;//長度-1

break;}}

} }for (int i = 0; i < length; i++)

//但是這種方式無法增加

system("pause");

}void main3()

; a[10] = 11;

a[11] = 12;//陣列越界

//這種情況一般不會報錯,但是如果這片記憶體被其他程式占用,就會報錯

//這是屬於偶然的成功,這樣寫會產生bug

getchar();

}void main()

getchar();

//插入斷點檢視結果:

//malloc只管分配,不初始化

//calloc會進行記憶體清零

}

陣列 靜態分配連續記憶體空間

1 用陣列靜態獲得一段連續的儲存空間,大小當然有限制了。理論上來說沒有限制,但是核心一般配置允許每個程序擁有有限的記憶體空間,可以用系統呼叫函式getrlimit int resource,struct rlimit rlim 獲得系統的資源限制。系統的資源限制分為軟體限制和硬體限制,軟體限制最大值...

C語言陣列的動態分配記憶體和靜態分配記憶體

在日常的程式設計中,我們難免會用到陣列,很多時候由於靜態開闢陣列空間,導致很多空間浪費又或是空間不足,那麼這時候就需要用到動態開闢陣列記憶體。下面就介紹這兩種初始化陣列的方式 直接用數字 int arr 10 用巨集定義define define maxsize int arr maxsize 用c...

靜態記憶體分配和 動態記憶體分配

1 靜態記憶體分配是在編譯時完成的,不需要占用cpu資源 動態分配記憶體是在執行時完成的,動態記憶體的分配與釋放需要占用cpu資源 2 靜態記憶體分配是在棧上分配的,動態記憶體是堆上分配的 3 動態記憶體分配需要指標或引用資料型別的支援,而靜態記憶體分配不需要 4 靜態分配記憶體需要在編譯前確定記憶...