Sungurbey Anadolu Lisesi
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Sungurbey Anadolu Lisesi

Sungurbey Anadolu Lisesi Paylaşım Merkezi
 
AnasayfaLatest imagesAramaKayıt OlGiriş yap

 

 Bilgisayardershanesi.com --> C++ Dinamik Bellek

Aşağa gitmek 
YazarMesaj
Admin
Admin
Admin


Mesaj Sayısı : 54
Kredi : 135147
Kayıt tarihi : 15/05/10
Yaş : 30
Nerden : Adana

Bilgisayardershanesi.com --> C++ Dinamik Bellek Empty
MesajKonu: Bilgisayardershanesi.com --> C++ Dinamik Bellek   Bilgisayardershanesi.com --> C++ Dinamik Bellek Icon_minitimePerş. Mayıs 20, 2010 12:12 pm

Isaretçi Islemleri ve Dinamik Bellek
Isaretçilere daha önce görmüs oldugumuz artirma (++), azalatma (--), çikarma (-), toplama (+) islemlerini uygulayabilirsiniz. Bunlarin yaninda iliskisel operatörleri de ( <=, =, !=, >= ) kullanmaniz mümkündür. Iliskisel operatörlerin sadece ayni tip isaretçiler üzerinde uygulanacagini unutmayiniz.

Bir dizinin boyutu degisken olabilir, daha dorusu bir program içinde degiskenler ve isaretçiler kullanilarak diziler dinamik bellek yerlesimi ile yapilabilir. C++ da dinamik belles islemleri new ve delete komutlari ile gerçeklestirilir.

Genel tanimimiz:

new <tür> [<[uzunluk]>]

new int
new char
new double [10]
new float[n]
new char[strlen(s) + 1]
new komutu ile yer tahsis etme islemi yapmaktayiz. new int ->1 int''lik yer tahsis edilmistir. Simdide tahsis ettigimiz yerin serbest birakilisini ele alalim. Bu sirada da delete komutu devreye giriyor. Daha dogrusu delete operatöürü new operatörüyle tahsis edilmis olan bloklari serbest birakmak için kullanilir.

Genel tanimimiz:

Delete[ ] <isaretçiadi>;
Eger yer ayirma islemi tek parça olarak yapilmissa (köseli parantez kullanilmadan yapilmissa) silme islemi de köseli parantez kullanilmadan yapilmalidir. Bir de suna dikkat edelim

Delete x+1; //hatalidir
Delete (x+1); //dogrudur
kullanilacaktir. Simdi bu söylediklerimizi asagidaki örnek üstünde uygulayalim.

http://dinamik.cpp
//dinamik bellek kavrami
#include <iostream.h>

struct tarih { //struck u daha görmedigimiz
int ay; //icin su an buraya egilmeyin.
int gun;
int yil;
};

void main()
{
int i, *is1, *is2; // i bir sabit ve *is1, *is2 isaretcilerimiz

is1 = &i;
*is1 = 77;
is2 = new int;
*is2 = 178;
cout << "Degerler "<<i<<" "<<*is1<<" "<<*is2<<"\n";
is1 = new int;
is2 = is1;
*is1 = 95454;
cout << "Degerler "<<i<<" "<<*is1<<" "<<*is2<<"\n";
delete is1;

float *float_is1, *float_is2 = new float;

float_is1 = new float;
*float_is2 = 3.14159;
*float_is1 = 2.4 * (*float_is2);
delete float_is2;
delete float_is1;

tarih *tarih_is;

tarih_is = new tarih;
tarih_is->ay = 10;
tarih_is->gun = 18;
tarih_is->yil = 1938;
cout<<tarih_is->ay<<"/"<<tarih_is->gun<<"/"<<tarih_is->yil<<"\n";
delete tarih_is;

char *c_is;

c_is = new char[37];
delete [] c_is;
c_is = new char[sizeof(tarih) + 133];
delete [] c_is;
}
Sayfa başına dön Aşağa gitmek
http://sungurbey.hareketforum.com
 
Bilgisayardershanesi.com --> C++ Dinamik Bellek
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
» Bilgisayardershanesi.com --> C++ Dinamik Diziler

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
Sungurbey Anadolu Lisesi :: Yazılım :: C ve C++-
Buraya geçin: