Şimdi Ara

c++ dinamik bellek kullanımı acil yardımcı olabilirmisiniz

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
5
Cevap
1
Favori
529
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • sayi giriniz:12345
    sagdan kırpılacak basamak sayisi:2
    sayının kırpılmıs hali:123
    şeklinde çıktısı olan bi program yazılcak
    (visual stdio da yazıldı)

    normal kodu:
    include<iostream>
    void main(){
    int sayi,miktar;
    cout<<"sayi giriniz";
    cin>>sayi;
    cout<<sagdan kırpılacak basamak sayisi";
    cin>>miktar;

    sagdankirp(&sayi,miktar);

    cout<<"sayinin kırpılmış hali"<<sayi;

    system("pause");

    }

    void sagdankirp(int *x,int n){
    *x=*x/10;
    return *x;
    }

    şimdi soruma gelelim:) bu kodu !!!!dinamik bellek kullanarak!!! ,sayiyi dizi şeklinde tanımlıcaz ancak girilen basamak sayısı kullanıcıya bırakıldıgı için dizinin boyutu önce sayinin basamak sayısını buldurup ona göre belirlenicek daha sonrada bu işlemler yapılıcak lütfen yardımcı olun çok önemli!







  • //heap hafıza biriminden yer tahsis etme(dinamik)
    int* p = new int[5];

    //yukarda p işaretçisi heap hafıza biriminde 5 tane int türünden adresi bize gösteriyor

    gelelim soruna: mesela p işaretçisine 12345 diye sayılar girdin
    p[0] = 1;
    p[1] = 2;
    p[2] = 3;
    p[3] = 4;
    p[4] = 5;
    şeklinde deplanır peki sondan 2'sinin kırpılması neolacak [3] ile [4]'ü kırpmamız gerek o 2'yi bir değikene aldık diyelim şimdi bize lazım olan p'nin eleman sayısı onuda sizeof ile bulabilriz sizeof'tan gelen değer son elemanı yani 4'ü verecek sonra döngü içinde 4'ten 2'yi çıkart 2 yani döngüde 0'dan başlayan 2'ye kadar gidecek o sayacımızın adı i olsun yeni_alan = p; döngüden sonra gereksiz alanları delete[] ile serbest bırak

    < Bu ileti mini sürüm kullanılarak atıldı >
  • cevabınız için teşekkürler ancak kaç basamaklı bir sayı girilecegi kullanıcıya bırakılmıs orda 12345 sadece bir örnek yani aslında dizinin kaç boyutlu olacagı kişinin girdiği sayıya baglı bunu dinamik bellekle yapabiliyomus sanırım ancak nasıl yapabildigimizi bilmiyorum :(
  • tamam işte kullanıcıdan kac değikenine veri al

    int* p = new int[kac];

    biraz araştır dinamik bellek yönetimini

    < Bu ileti mini sürüm kullanılarak atıldı >
  • evet oyle kullanılıyo araştırdım ama uygulamada eksigim var..Aslında hata olan nokta su sanırım böyle anlatsam daha anlaşılır olacak. basamak sayısı belli degil bu sebeple dizinin boyutuda yani girilen degere göre degisiyo.program diziyi tanımlarken boyutsuz tanımlamaya izin vermiyo sanırım bu şekilde yapabilmek için de dinamik bellek kullanımına ihtiyaç duyuyor.burda dizi olmasını istiyorum çünkü for la her sayıyı tek tek aldırarak basamak hesaplatmaya çalışıyorum.ancak sizin dediğiniz gibi yapıyorum bu sefer basamak sayısını hesaplatmak icin fora sokamıyorum cünkü şart kısmına ait basamak degeri henüz yok.sayi da henüz girilmedi yani herşeyi bu işlemlerin altında yapmam gerekiyo öyle yapıncada for işi olmuyo anlatabildim mi bilmiyorum zaten yeniyim kod yazma konusunda yanlıs da mantık kuruyo olabilirim affınıza sığınıyorum.
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.