Şimdi Ara

c++ işaretçiler soru yardımı

Bu Konudaki Kullanıcılar:
2 Misafir - 2 Masaüstü
5 sn
5
Cevap
0
Favori
144
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Bir dizinin kopyasını çıkarıp kopyayı döndüren bir fonksiyon yazınız. Fonksiyon kopyalanacak diziyi ve boyutunu parametre olarak alır ve oluşturduğu kopyanın göstergesini döndürür.

    Örnek Çıktı
    -----------
    Dizinin boyutunu giriniz:5
    Dizinin elemanlarini giriniz:2 4 6 8 10
    Dizinin kopyasi:2 4 6 8 10



    < Bu mesaj bu kişi tarafından değiştirildi cs233 -- 11 Ağustos 2017; 21:11:32 >



  • Arkadaşım neden sorunuzu değiştiriyorsunuz, yeni konu açıp sorabilirsiniz.



    < Bu mesaj bu kişi tarafından değiştirildi Guest-D639AD061 -- 12 Ağustos 2017; 10:6:56 >
  • 1-)kullanıcıdan parametreler istenir
    2-) dizi[kullanıcı parametresi 1] kullanılarak dizinin boyutu belirlenir.
    3-)dizinin ilk elemanının adresini (&dizi[0]) işaretçine eşitlersin ve artık işaretçi yardımıyla dizinin tüm elemanlarına erişmiş olursun.

    umarım sorunu doğru anlamışımdır.
  • sordugundan anladigim simdi fonksiyona gelen arrayi fonksiyon icinde olsuturdugun arraye kopyalayip onu baska bir array icin dondurmek.


    #include <iostream> 

    int* foo(int src[], int size);
    void print_array(const int src[], int size);

    int main() {
    int src[5] = {1, 1, 2, 3, 5}; // kopyalanacak array
    int *dst; //kopya arrayin adresi
    dst = foo(src, 5);
    print_array(dst, 5);
    delete[] dst; // heapten aldigimiz alani geri veriyoruz
    return 0;
    }

    int* foo(int src[], int size){
    //arrayi heapte olsuturmamiz lazim. stackte olustursaydik int tmp[5]; gibi. fonksiyon bittiginde array serbest birakilacakti.
    //dangling pointer diye aratabilirsin
    int *tmp = new int[size];
    for(int i = 0; i < size; ++i){
    tmp[i] = src[i];
    }
    return tmp;
    }

    void print_array(const int src[], int size){
    std::cout << "[";
    for(int i = 0; i < size; ++i){
    if(i == size -1)
    std::cout << src[i] << "]";
    else
    std::cout << src[i] << ", ";
    }
    }
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.