我是一名學生,編寫一個方法,以C++中的整數數組的末尾來刪除零。該數組在結構中,並且該結構還具有一個int,用於跟蹤數組的長度。當數組縮小時,是否需要刪除元素?
該方法檢查每個元素從最後一個開始,直到遇到第一個非零元素,並通過更改長度值將其標記爲「最後一個元素」。然後該方法回到原來的「最後一個元素」,刪除那些不在界限之外的元素(零)。
一個刪除數組中的i
個元素如果i
比數組的更新的長度越大部分,看起來像這樣:
if (i > p->length - 1) {
delete (p->elems + i); // free ith elem
即線是錯誤的,雖然。刪除需要一個指針,是嗎?所以我的感覺是,我需要恢復指向數組的指針,然後將i
添加到它,以便我將具有要刪除的整數的內存位置。
我的直覺是否錯了?錯誤是否微妙?或者,我有完全錯誤的想法嗎?我開始懷疑:我真的需要釋放這些原始物嗎?如果他們不是原始人,我需要,在那種情況下,我會怎麼樣?
你可以展現結構的模樣和「P」的聲明? – 2010-10-29 23:28:00