首頁 > 後端開發 > C++ > 如何確定作為函數參數傳遞的 C 數組的大小?

如何確定作為函數參數傳遞的 C 數組的大小?

DDD
發布: 2024-11-24 08:17:10
原創
624 人瀏覽過

How Can I Determine the Size of a C   Array Passed as a Function Parameter?

決定 C 函數參數中的陣列大小

在 C 中,陣列以函數參數傳遞時會隱式轉換為指標。這意味著大小資訊遺失,並且無法在函數內直接存取數組的大小。

在您的程式碼片段中:

void makeVectorData(float p_vertData[]) {   
 int num = (sizeof(p_vertData)/sizeof(int)); 
}
登入後複製

sizeof(p_vertData) 擷取大小指向陣列的指標,而不是陣列本身。由於指標需要 32 位元(在 32 位元系統上),因此無論陣列的實際大小如何,num 都會等於 1。

解:

到存取陣列的大小,您可以傳遞一個單獨的參數來指示大小:

void makeVectorData(float p_vertData[], int size) {   
 int num = size; 
}
登入後複製

在呼叫者中,然後,您可以將陣列的大小指定為參數:

makeVectorData(verts, sizeof(verts) / sizeof(float));
登入後複製

以上是如何確定作為函數參數傳遞的 C 數組的大小?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板