Arama butonu
Bu konudaki kullanıcılar: 1 misafir
3
Cevap
151
Tıklama
0
Öne Çıkarma
c++ işaretçiler soru yardımı
C
8 yıl
Onbaşı
Konu Sahibi

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

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil





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

G
8 yıl
Teğmen

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 >

S
8 yıl
Yüzbaşı

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.



B
8 yıl
Binbaşı

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] << ", ";
}
}



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.