3
A
回答
0
當您聲明struct
時,您沒有爲該結構分配內存。但是,你可以聲明一個struct
和定義類型的變量向右走,像這樣:
struct student
{
int marks;
float average;
} var_name; // Reserves the memory in the global/static space
您還可以定義在自動空間(局部變量)或與new
動態空間變量。
0
通常它應該是當你創建一個定義。既然你可以聲明一個結構的實例而不定義它(可能在頭文件中帶有extern),除非定義它,否則沒有空間將用於實例。
但是,如果編譯器沒有實際使用,編譯器可以選擇將對象從程序中除去。有時候,編譯器可能會非常熱心並剝奪根本沒有被引用的對象,但實際上會執行重要的操作,比如某種註冊。
相關問題
- 1. 保留class和struct
- 2. Java - 高級保留空間內存不足
- 3. Mysql文本DataType保留任何內存空間
- 4. 映射保留高內存通過remap_pfn_range用戶空間
- 5. @ManagedProperty保留爲空
- 6. 爲struct「error」分配內存
- 7. 是否有可能查看爲Visual Studio 2010保留了多少內存空間?
- 8. Solr保留磁盤空間
- 9. 雙空間不被保存在PDF中
- 10. 如何保留內存爲載體
- 11. 爲Python中的列表保留內存?
- 12. 爲空JLabel預留空間
- 13. 是否可以在內存中保留空間以減少加載時間?
- 14. 如何計算下面的struct佔用的內存空間?
- 15. 保留的內存地址?
- 16. YARN保留內存問題
- 17. 休眠:值id被保存爲空
- 18. API密鑰保留爲空
- 19. 引用保留爲空
- 20. UIView被保留
- 21. 當空間被包含在
- 22. 空間被當作命令
- 23. 將excel保存爲xml時保留空單元
- 24. XDocument.Parse當不要求時保留空格
- 25. Excel - 如果值爲0,則保留空白,但值爲0.03時保留空白
- 26. GTK +/C避免保留GtkGrid內隱藏小部件的空間
- 27. 將名稱空間保留在對象函數範圍內
- 28. MySQL內存空間
- 29. SQL Server上的保留空間過大
- 30. Django模板指令保留空間
我認爲這取決於您是否使用數據。 – 0x499602D2 2013-04-22 01:39:28
當你實例化一個對象時它被保留。即用'學生'聲明一個變量;'將保留內存,就像'student * s = new student()'一樣;但是寫下你所做的只是定義了類型,它不會保留內存,因爲沒有創建變量。 – nonsensickle 2013-04-22 01:44:06
從技術上講,在C++中,你應該使用類。類和結構一樣工作,但增加了一些功能,如模板。 C++具有結構的唯一原因是與舊C程序的向後兼容性 – refi64 2013-04-22 02:17:09