2013-08-18 15 views
0

我用C++實現的共享內存有一個鏈表。當我向鏈表添加元素時,它的大小會自動改變(就好像它是一個普通的堆分配元素),或者它應該只包含固定大小的數組,像固定大小的數組?執行過程中共享內存大小是否發生變化?

+0

你知道鏈表是​​如何工作的嗎?添加新元素時,它只是動態添加的,並且指針將從前一個數據元素指向它。這應該回答你的問題,是嗎?如果不是,請您詳細說明真正的問題是什麼? – lpapp

+0

你應該仔細閱讀我的問題。我很清楚鏈表是如何工作的。在正常的生活中,我們使用動態內存分配在堆上創建鏈表。然而,在我的問題中,我已經說過,我在共享內存區域創建了一個鏈接列表,並且您可能會猜測共享內存區域具有與堆不同的固定大小。所以我問,是否有可能初始化共享內存區域,以便在添加新插入時,其初始大小不會成爲問題。我的意思是它會表現得像堆。但我不認爲這是可能的。 – Carlos

+0

那麼,它當然是固定的大小。否則,如果事先做不到足夠大,您需要創建另一個更大的。 – lpapp

回答

0

在已知的操作系統(如Windows或Linux)中,共享內存的大小是固定大小,不能增長。你應該創造足夠大的,因爲你需要。

  • 在第一步中,您必須確定一個固定大小(與您提到的數組大小相同)。

  • 之後,你不能簡單地改變大小。 IMO正在創建另一個共享內存並向其複製數據的唯一方法。

+0

謝謝,你的答案是我猜不幸的。 – Carlos