Dinamik olarak ayrılmış bir diziyi tüm öğeler arasında döngü yaparak ve her birinde delete
numaralı telefonu arayarak silmek istiyorum.
(Bunu yapıyorum çünkü bir diziyi başka bir konuma taşımak, yani, orijinal diziyi kopyalamak ve sonra silmek, ancak her öğeyi eşzamanlı olarak kopyalamak ve bunlara delete
'u çağırmaktan 2 kat daha fazla zaman alacağım bireysel olarak)Dinamik bir dizi öğelerinin tek tek silinmesi
Ben şu kod:
int main()
{
int *n=new int[2];
delete n;
delete (n+1);
}
Ama bir segmentasyon hatası ben bu çalıştırmak her zaman alıyorum ....
bu gayet iyi çalışıyor, ne kadar -:
int main()
{
int *n=new int[1];
delete n;
}
Öyleyse, tahminim silme, bir şekilde tek bir öğe yerine tüm diziyi siliyor olmasıdır!
Tahmininizin doğru olup olmadığını ve herkesin olası bir çözüm önerisi varsa, lütfen bunu açıklayabilir misiniz?
Ben Öğeleri tek tek silemezsiniz Ubuntu 13.04
Bunu yapmanın en kolay yolu, dinamik diziler yerine C++ standart kapsayıcılarını (bu örnekte std :: vector) kullanmaktır ve yalnızca kabın silme yöntemini kullanır. Ama öte yandan, ne yapmaya çalışıyorsun? Neden öğeleri birer birer silmek istiyorsun? – Manu343726
Aslında, kendime ait başka bir vektör benzeri konteyner yapmaya çalışıyordum. [Sadece std :: vectors 'başlık altında çalışmak nasıl daha iyi anlamak için) C++ öğrenmek için –
@Ammol? tamam. Yani senin sorunun vektörün yıkıcısı hakkında mı? Bu yüzden bir öğeyi tek tek silmeye mi çalışıyorsun? – Manu343726