Mingw vs C++

aqwe4763

Centipat
Katılım
15 Ekim 2019
Mesajlar
19
Bu örnekteki gibi sabit olmayan eleman sayısı ile bir dizi tanımlamak istediğimde Visual Studio hata veriyor fakat mingw'de sıkıntısız derlenip çalışıyor. Vs'da dışardan aldığım değerle dizi oluşturmam için illa heap'de oluşturmam lazım. Sorum şu ikisi de c++ derleyicisi iken arada neden böyle bir fark var ve hangisi doğru. Teşekkürler şimdiden.

C++:
int elemanSayisi;
cout << "Dizinin boyutunu giriniz: ";
cin >> elemanSayisi;
int dizi[elemanSayisi];
 
Son düzenleyen: Moderatör:
Bu konuda son derece bilgi sahibi değilim ama bana göre vs'in runtime exception riskini azaltmak için temkinli davranıyor gibime geliyor. Yoksa hafızada yer açma işini yapamayacak bir platform değil hayli hayli yapar bunu. Cevabını ben de merak ediyorum.
 
@Nullo
Adsız.png
 
Array boyutunun compile time sırasında bilinmesi gerekir diye biliyorum. Runtime'da belirlemek istiyorsanız Vector kullanmak daha doğru olur sanırım.

Edit: C99'da variable length array desteği var. Ancak C++'ta yok. Yukarıda da dediğim gibi std::vector kullanmanız daha iyi olacak.
 
Son düzenleme:
Değişkenin değerini bir sabite atayıp, diziyi dinamik dizi olarak tanımlarsan derleyecektir.

cin >> elemanSayisi;
const int x=elemanSayisi;
int* dizi = new int[x];
 
@exceptionalinci kardeş birincisi sorduğum şey bu değil ikincisi dediğin şeyi zaten soruda yazmıştım
Afedersin bu durumun sebebini sormuşsun, hatırladığım kadarıyla VS'a son gelen güncellemelerden önce böyle bir hata ortaya çıkmıyordu, eski projelerimde sürekli yaptığım bir şeydi. Sanırım son güncellemeler ile birlikte derleyicide bazı değişiklikler yapmışlar, sebebi hakkında bir şey bulamadım.
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Yeni konular

Geri
Yukarı