Arama butonu
Bu konudaki kullanıcılar: 1 misafir
3
Cevap
154
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





< 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.