C語言結構體中最後一個成員爲char[1]或char[0]

原文地址: 須要引發注意的:ISO/IEC 9899-1999裏面,這麼寫是非法的,這個僅僅是GNU C的擴展,gcc能夠容許這一語法現象的存在。 結構體最後使用0或1的長度數組的緣由,主要是爲了方便的管理內存緩衝區,若是你直接使用指針而不使用數組,那麼,你在分配內存緩衝區時,就必須分配結構體一次,而後再分配結構體內的指針一次,(而此時分配的內存已經與結構體的內存不連續了,因此要分別管理即申請和釋
相關文章
相關標籤/搜索