Array Shalow Copy Bahasa C dan Fungsinya
# include <iostream>
# include <string.h>
using namespace std;
struct test
{char *str;};
int main()
{
struct test st1, st2;
st1.str = new char[20];
strcpy(st1.str, "MakanNasiPadang");
st2 = st1;
st1.str[0] = 'X';
st1.str[1] = 'Y';
// Karena proses copy yang
// dangkal (shallow), maka
// kedua nilai string adalah
// sama
cout << "st1's str = " << st1.str << endl;
cout << "st2's str = " << st2.str << endl;
return 0;
}
st2’s str = XYkanNasiPadang
Contoh:
# include <iostream>
# include <string.h>
using namespace std;
struct test
{char str[20];};
int main()
{
struct test st1, st2;
strcpy(st1.str, "MakanNasiPadang");
st2 = st1;
st1.str[0] = 'X';
st1.str[1] = 'Y';
// Karena proses copy yang
// dalam (deep), maka nilai
// kedua array berbeda.
cout << "st1's str = " << st1.str << endl;
cout << "st2's str = " << st2.str << endl;
return 0;
}
st2’s str = MakanNasiPadang
Oleh karena itu, untuk class pada C++, tidak perlu ditulis konstruktur salinan, juga operator penugasan yang digunakan untuk anggota array, karena sifat default-nya adalah deep copy ke array.
- Fakta Unik Risiko Penggunaan gets() pada Bahasa C
- 3 Contoh Program Fungsi untuk Menukar String Bahasa C
- 6 Contoh Program Penyimpanan String dalam Bahasa C
- 10 Contoh Program Perbedaan Array dan Pointer Bahasa C
- 4 Cara Sederhana untuk Alokasi Dinamis Array 2D pada Bahasa C
- 5 Kondisi Untuk Melewatkan Array 2D sebagai Parameter Bahasa C
- Cara Simple untuk Membuat Long String Multibaris Bahasa C
5 komentar untuk "Array Shalow Copy Bahasa C dan Fungsinya"
Hubungi admin melalui Wa : +62-896-2414-6106
Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.
Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.
- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -
Apa yang dimaksud dengan shallo copy pada bahasa C?
BalasHapusShallow copy atau copy-an dangkal dalam konteks khusus berarti user melakukkan proses copy "referensi" baik itu berupa pointer, atau apapun datanya, ke dalam suatu objek, dan menyimpan dukungan referensinya atau pointer tersebut secara identik, pada lokasi yang sama dalam memori yang sama.
HapusShallow copy adalah salinan yang berasal dari suatu object pada bahasa H. Object baru yang telah di-copy tersebut memiliki salinan yang sama persis dari nilai-nilai object aslinya. Jika salah satu bidang object tersebut adalah referensi ke object lain, maka hanya alamat referensinya saja yang disalin, yaitu berupa alamat memori.
HapusApa perbedaan antara shallow copy dan deep copy pada bahasa C?
BalasHapusShallow copy membangun object gabungan yang baru dan kemudian menyisipkannya ke referensi dalam object aslinya. Sedangkan deep copy membangun object gabungan baru dan secara rekursif menyisipkan salinan object tersebut ke lokasi aslinya secara mendalam (deep).
Hapus