DonanımHaber Mini sürüm 2 Ocak 2026 tarihi itibariyle kullanımdan kalkacaktır. Bunun yerine daha hızlı bir deneyim için DH Android veya DH iOS uygulamalarını kullanabilirsiniz.
Arama butonu
Bu konudaki kullanıcılar: 1 misafir
6
Cevap
497
Tıklama
0
Öne Çıkarma
dev-c++ 5.7.0 da ARRAY PROBLEMİ
P
11 yıl (11 mesaj)
Er
Konu Sahibi

Arkadaşlar bilgisayarımdaki c++ 'ı güncelleyip dec-c++ 5.7.0 sürümünü kullanmaya başladığımda eski sürümde yazdığım bir programın yeni sürümde çalışmadığını fark ettim .

#include<iostream>
using namespace std;
int main(){

int card[0];

for(int a=1;a<=10;a++){
card[a]=a;
cout<<card[a]<<endl;}

return 0;
}

KOD yukarıdaki gibi
card[0] arrayinde bir problem var.
eski sürümde card[0] 'ı programa tanıttığım zaman istediğim kadar değeri card arrayine atayabiliyordum yukarıda 10 tane değer atamaya çalıştığım gibi .
şimdi aynısını yapmaya çalıştığımda "program.exe çalışmayı durdurdu" şeklinde bir kutu çıkıyor ve program çalışmıyor .
Bu problemi nasıl giderebilirim ?



S
11 yıl (2043 mesaj)
Binbaşı

card dizisinie eleman atamak istiyorsan sadece dizinin bildirimini yap. Senin yaptığın sıfır elemanlı bir dizi tanımlamak. Visual Stdio da boyutunu belirlemeden dizi tanıtılabiliyor fakat DevC++ da bende beceremedim onu.

sen 10 elemanlı bir dizi oluşturmak istiyorsan int card[10]; yazmalısın.


Bu mesaja 1 cevap geldi.
P
11 yıl (11 mesaj)
Er
Konu Sahibi

peki kaç elemanlı bir dizi oluşturacağımı bilmiyorsam ne yapmalıyım ?


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Sofiman
S
11 yıl (2043 mesaj)
Binbaşı

benim bildiğim; bir dizi bildirimi yaparken boyutunu mutlaka yazmamızdır. Ama bu bilgiden net emin değilim çünkü derste hocamızın int a[]; şeklinde bir satır yazdığını hatırlıyor gibiyim. Umarım biri gelip aydınlatır bizi.

Bu arada kaç elemanlı bir diziye ihtiyacın olduğunu net bir şekilde bilemiyorsan pointerları kullanabilirsin.Örneğin

int *p;

for(int i=0; i<10; ++i) {
*(p+i)=i; } gibi




Bu mesajda bahsedilenler: @pachanga1992
L
11 yıl (388 mesaj)
Yüzbaşı

bkz: dinamik bellek yönetimi

int* card = (int*)malloc(ELAMANSAYISI*sizeof(int));

// . . .

free(card);



< Bu ileti mini sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
P
11 yıl (11 mesaj)
Er
Konu Sahibi

Hocam en baştaki örnekte nasıl kullanabilirim bu yazdığınızı anlatabilir misiniz ? (visual C++ kullanarak daha kolay bir metod var mı ? )




Bu mesajda bahsedilenler: @lavara123
L
11 yıl (388 mesaj)
Yüzbaşı

link vermek yanlış olurmu bilmiyorum ama şurda anlatmıştım:

Ders 1
Ders 2
Ders 3*
Ders 4

bunları c++ üzerinden anlattım ama mantığı anlamak önemli ;)



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.