我想動態增加數組的大小。是否有任何標準的C或C++函數,它在數組的末尾添加額外的空間或將其刪除? 我知道,這很難,因爲它不能保證在堆的最後有足夠的空間。但是,這不應該是操作系統的工作嗎?動態增加/減少數組大小
回答
你要找的功能是在C,這也是目前在C++ STL爲std::realloc
雖然你提到C++ realloc()
,你也可以去像std::vector
一個標準的容器,它封裝了相關內存管理。
它不會減小尺寸,是嗎?** –
好吧,如果我輸入比以前更小的尺寸,它確實會減少。或者這是不可能的? –
@GrijeshChauhan您可以指定一個小於數組的舊大小的新大小。 C標準規定(7.20.3.4)'realloc()'「重新分配由ptr指向的舊對象,並返回一個指向size爲size指定大小的新對象的指針,並且新對象的內容是一直到min(oldSize,newSize)。 – JBL
這裏沒有C函數。你可以去C++容器。這有陣列,列表等...
可能你可以通過編寫你自己的內存管理包裝這樣的方式來實現這個從分配的數組追加/釋放內存塊的方式。
經過諸如教授和工程師(有幾年真實工作經驗的人)的大量實驗後,擴展數組時,除非你有內部信息告訴你不同,否則將其擴大50%。 realloc()爲你也做了所有重載(解釋見下)。從因特網: - > realloc()函數將ptr指向的內存塊的大小更改爲字節大小。內容在從區域開始到新舊尺寸的最小範圍內保持不變。如果新尺寸大於舊尺寸,則添加的內存不會被初始化。如果ptr爲NULL,則對於所有大小的值,調用等價於malloc(size);如果size等於零,並且ptr不爲NULL,那麼調用等價於free(ptr)。除非ptr爲NULL,否則它必須早先通過調用malloc(),calloc()或realloc()返回。如果指向的區域被移動,則完成一個空閒(ptr)。
- 1. 如何動態增加數組大小
- 2. 用C#動態增加/減少數字
- 3. 減少但不增加背景大小
- 4. 增加/減少圖像大小,網站
- 5. ios增加/減少表格大小
- 6. Gstreamer:動態增加和減少延遲
- 7. MPMusicPlayerController音量增加和減少動態
- 8. 動態增加JTable大小
- 9. 增加/減少大量整數
- 10. 動畫UILabel文本大小增加和減少
- 11. 拖動增加/減少值
- 12. 增加數據包大小時RTT減少
- 13. Java增加數組大小
- 14. 減少和增加浮動增量android
- 15. GWT - 增加和減小字體大小
- 16. 如何動態增加C#中固定數組的大小?
- 17. 動態增加結構「C」數組大小
- 18. 試圖動態增加數組的大小
- 19. 動態增加和減少JavaScript中的數字
- 20. 減少TimePicker大小
- 21. 減少BitmapDrawable大小
- 22. 增加和減少html標籤的字體大小
- 23. Javascript來增加/減少字體大小(外部CSS)
- 24. 如何增加或減少ImageView的大小?
- 25. 如何增加/減少點擊事件窗口大小?
- 26. 如何在asp.net中增加或減少btn點擊的大小?
- 27. 爲JDK7和JRuby減少彈藥大小(或增加限制)
- 28. PDF文字字體大小增加減少
- 29. 如何在asp.net中增加或減少btn點擊的大小?
- 30. 使用JButton增加/減少textArea內的字體大小
['void * realloc(void * ptr,size_t size);'](http://www.cplusplus.com/reference/cstdlib/realloc/)在C中的功能 –
您需要下定決心你在用什麼語言進行編程。在C中,你會使用'realloc'。在C++中,你會使用'std :: vector'。 –