[英]Is it ok to have excess elements in array initializer?
通常在我們初始化數組時,我們可能會這樣做:
int arr[] = {1, 2, 3, 4, 5};
但是可以明確地限制數組的長度如下所示嗎? :
int arr[3] = {1, 2, 3, 4, 5};
盡管編譯器發出了一些警告,但可執行文件似乎沒有任何問題。
不,不行。 從C99,6.7.8.2:
約束
- 初始化程序不應嘗試為未初始化的實體中包含的對象提供值。
在我的閱讀中,這意味着提供多余的初始化元素是違反約束的,因此它會調用未定義的行為。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.