Ana içeriğe atla

C++ New ve Delete Komutları

    New komutu ile ram üzerinden bellek ayırarak; kodların derlenmesinden sonra boyutları değişebilen dizi ve matris yapıları gibi boyut yani kaç elemanlı olacağını bildirmemiz gereken durumlarda oldukça kullanışlıdır.

    Örneğin öğrenci notları üzerine bir masaüstü program yapıyoruz, programda öğrenci sayısı girilmeden bir ekle butonu ile öğrenci ekleme durumunda new komutu işimize yarayacaktır.

    New komutu ile RAM üzerinde hafıza ayrılır, ramden ayrılan hafızaya ulaşabilmek için bir pointer üzerine bu hafızanın başlangıç adresi kaydedilir.
    Örneğin ramde 5 elemanlı bir dizilik yer ayırır ve bu dizinin başlangıç adresini bir pointer ile tutarız.

    Konsol üzerinde çalışacak bir uygulama ile new ve delete komutunu daha iyi anlayalım.

#include <iostream>

using namespace std;

int main()
{
	int eleman_sayisi; 
	//kullanıcıdan eleman sayısını almak için bir degişken oluşturduk
					   
	cout<<"kac elamanli dizi olusturmak istersiniz: "<<endl;
	//ekrana kullanıcı için bir komut cümlesi yazdırdık
	
	cin>>eleman_sayisi;
	//kullanıcıdan eleman sayısını aldık
	
	int *pointer;
	//dizinin başlangıç adresini oluşturmak için bir pointer tanımladık
	
	pointer = new int[eleman_sayisi];
	//dizimizi tanımlayarak, dizinin başlangıç adresini pointer'a atadık
	
	cout<<endl<<pointer;
	//pointer'a atanmış olan dizinin ilk adresini ekrana yazdırdık
	
        delete[] pointer;
        //delete komutu ile ramde alan işgal ettigimiz hafızayı serbest
        //bıraktık
	return 0;
}

Yorumlar

Bu blogdaki popüler yayınlar

Matlab Operatörler

Matematiksel operatörler: +  Toplama –  Çıkarma *  Çarpma /  Bölme ^  Üst alma .* Elemanter çarpım ./  Elemanter bölme .^  Elemanter üst alma a+b  Boyutları aynı olan a ve b matrisini toplar. a-b  Boyutları aynı olan a ve b matrislerinin farkını alır. a*b  Sütun sayısı m olan a matrisiyle satır sayısı m olan b matrisini çarpar. a/b  b düzenli kare bir matrisse (determinantı sıfırdan farklıysa), aynı boyutlu a matrisiyle; a*inv(b)işlemini yapar. a.*b  Boyutları aynı olan a ve b matrislerinin elemanlarını karşılıklı olarak çarpar. a./b  Boyutları aynı olan a ve b matrislerinin elemanlarını karşılıklı oranlar. sqrt  Kök alma abs  Mutlak değer rats  Kesirli gösterim Mantıksal operatörler: &  Ve |  Veya ~  Değil /  Bölme Karar operatörleri: >  Büyüktür <  Küçüktür >=  Büyük eşittir <=  Küçük eşittir ==  Eşittir ~= ...

Matlab Asal Sayı Buldurma

Klavyeden girilen bir tamsayının, asal sayı olup olmadıgını veren algoritma kodları: Asal sayı tanımı; "1 ve kendisinden başka tamsayıya, tam bölünemeyen tamsayılara; asal sayı" denir. Girilen tamsayının asal olup olmadıgının tespiti için; tanımdan hareketle 1'den tamsayıya kadar döngü açılır ve kaç kere tam bölündügü hesaplanır. Eğer 2 kere tam bölünmüşse girilen sayı asal sayıdır.  Matlab kodları: a=input( 'Tamsayı giriniz: ' );   %kullanıcıdan tam sayı girilmesi isteniyor disp( '   ' );                                 %bir miktar boşluk bırakılıyor s=0;                                         %s degişkeni sayının kaç defa tam bölündügünü tutması için                                     ...