Halo, dan selamat datang kembali.
Dalam kuliah ini, saya ingin berbicara tentang penggunaan pointer dan
struktur, bagaimana mereka terkait.
Kita dapat memiliki elemen di dalam struktur
menjadi pointer, dan kemudian kita juga dapat membuat struktur kita sendiri menjadi pointer.
Dua konsep yang sangat berguna.
Jadi struktur penting di sini c memungkinkan pointer dua struktur.
Jadi ketika kita membuat variabel bertipe struktur, kita bisa
membuatnya sebagai pointer.
Pointer ke struktur lebih mudah dimanipulasi daripada struktur itu sendiri.
Jadi sekali lagi, ini semacam hal notasi,
membuat segalanya jauh lebih mudah dan juga lebih efisien.
Dalam beberapa implementasi bahasa c yang
lebih lama, suatu
struktur tidak dapat diteruskan sebagai argumen ke suatu fungsi,
tetapi kita tahu bahwa pointer dapat. Jadi ini adalah alasan lain
mengapa Anda ingin struktur menjadi pointer ketika Anda mendeklarasikannya
karena Anda dapat menyebarkannya di versi c yang lebih lama,
Anda dapat meneruskannya sebagai argumen ke suatu fungsi.
Bahkan jika Anda dapat meneruskan struktur sebagai argumen,
melewatkan pointer lebih efisien.
Kami tahu itu lebih efisien. Kami telah membicarakan hal ini di masa
lalu bagaimana passing yang penting bisa menjadi lebih efisien.
Dalam hal ini, ini bahkan
lebih efisien karena jika Anda melewati seluruh struktur, jika
strukturnya besar dan berisi banyak elemen, Anda
menyalin semua elemen dalam struktur ke parameter itu.
Jika Anda melewati pointer, cukup salin alamatnya.
Jadi lebih penting lagi dengan
pointer sebagai argumen yang terstruktur karena strukturnya bisa besar.
Begitu banyak representasi data menggunakan struktur, yang berisi pointer
ke struktur lain.
Anda akan sering melihat ini di semua
struktur program c Anda yang merupakan pointer dan untuk alasan yang kami sebutkan.
Fakta bahwa Anda dapat meneruskannya sebagai parameter pada versi yang lebih
lama untuk dilihat dan juga lebih efisien karena
Anda, kami melakukan segalanya dengan nilai yang menyalin
jauh lebih efisien untuk menyalin alamat
daripada menyalin semua elemen dari struktur besar ini.
Jadi mendeklarasikan struktur sebagai pointer cukup mudah.
Saat Anda mendefinisikan variabel sebagai penunjuk untuk dipukul, Anda cukup menggunakan tanda bintang
itu setelah tipe data.
Dan kami mengatakan bahwa struktur benar-benar tipe baru.
Dalam hal ini, struktur tanggal penting kita.
Kami hanya mengatakan tanggal struct dan kemudian menggunakan penunjuk tanggal
asterisk, dan Anda mungkin ingin menginisialisasinya ke nol.
Karena ingat, ketika Anda mengatakan struct date pointer date struct
date pointer, yang tidak mengalokasikan memori apa pun,
itu menciptakan memori untuk menyimpan pointer yang sebenarnya.
Itu tidak membuat memori untuk data di dalamnya.
Jadi Anda bisa
menetapkan titik tanggal ini atau alamat tanggal struct lain atau
Anda bisa mengalokasikan memori untuk itu di tempat lain
atau Anda bisa menginisialisasi dengan
beberapa data seperti itu juga.
Jadi pointer tanggal variabel dapat ditetapkan seperti pointer lainnya, Anda
dapat mengaturnya untuk menunjuk ke tanggal hari ini
dengan pernyataan penugasan jadi jika kita sudah memiliki deklarasi tanggal hari ini.
Kami hanya akan menggunakan ampersand untuk mendapatkan alamatnya.
Jadi kami membuat struct tanggal normal dan itu adalah tanggal hari ini.
Sehingga akan tercipta memori untuk ketiga elemen tersebut.
Dan kemudian kami membuat pointer kami dan kami
hanya menetapkan alamat tanggal lainnya.
Cukup mudah. Kami telah melakukannya dengan tipe data
biasa, tidak berbeda ketika Anda melakukannya dengan struktur.
Anda kemudian dapat secara tidak langsung mengakses salah satu anggota struktur data yang ditunjuk oleh penunjuk tanggal.
Jadi kita perlu melakukan sesuatu seperti ini.
Jika Anda ingin mengakses elemen
struktur penunjuk hari, Anda harus melakukan de-referensi terlebih dahulu.
Dan mungkin akan berguna untuk memasukkannya ke dalam tanda kurung sehingga sangat mudah.
Anda harus mereferensikan penunjuk tanggal untuk mendapatkan nilai
yang ditunjuk oleh tanggal
hari ini, nilai alamat tanggal hari ini
yang ditunjuk untuk menetapkan nilai tertentu.
Jadi, Anda akan mereferensikannya dan
kemudian melakukan dot day sama dengan 21 dan itu akan menetapkan 21 ke
penunjuk hari Anda.
Sekarang di atas hanya mengatakan apa pun yang ditunjukkan oleh tanggal hari
ini, kami ingin mengakses nilai itu dan mengatur hari ke 21.
Dalam hal ini, tanda kurung diperlukan karena titik
memiliki prioritas lebih tinggi daripada tanda bintang.
Jika Anda tidak meletakkan tanda kurung di sana, itu akan kacau karena akan mencoba
melakukan titik terlebih dahulu sebelum benar-benar mendapatkan pointer ke pointer,
untuk mengarahkannya ke data.
Jadi itu akan mencoba mengakses data dengan pointer nol pada dasarnya.
Jadi dengan de-referensi Anda mendapatkan nilai.
Sekarang ketika kita menggunakan struct sebuah pointer.
Jika kita ingin menguji nilai bulan yang disimpan dalam struktur tanggal yang ditunjuk oleh penunjuk tanggal, kita
bisa melakukan sesuatu seperti ini.
Kami menghapus referensi penunjuk, dimasukkan ke dalam tanda kurung, sehingga lebih diutamakan daripada titik dan kemudian
kami mengatakan titik bulan sama dengan 12.
Ini sintaks yang benar-benar valid.
Tapi itu agak sedikit merepotkan.
Jadi c memiliki sintaksnya sendiri, jadi Anda tidak perlu mereferensikan semuanya
dan meletakkannya di dalam tanda kurung untuk struktur.
Saat Anda ingin mengakses apa yang ditunjuk oleh struktur, Anda tidak
perlu melakukan de-referensi dengan cara ini.
Ada operator khusus yang ada di c untuk struktur pointer, dan itu
tanda hubung lebih besar dari.
Ini adalah tanda hubung yang diikuti dengan tanda lebih besar dari.
Dan ini memungkinkan Anda untuk tidak perlu mereferensikan pointer.
Jadi, alih-alih melakukan bintang x di dalam tanda kurung dan kemudian titik y,
Anda bisa mengatakan x tanda hubung lebih besar dari y.
Karena x adalah pointer, Anda tidak perlu mereferensikannya dan Anda ingin mengakses
elemen di dalam struktur itu apa pun yang Anda tunjuk.
Jadi Anda akan melihat sintaks ini di semua tempat. Anda tidak akan
melihat tanda kurung dan referensi d. Ini benar-benar valid, tetapi Anda mengetik lebih banyak karakter.
Jauh lebih efisien untuk hanya mengatakan x tanda hubung lebih besar dari y.
Jadi pernyataan if sebelumnya di sini alih-alih mereferensikan di dalam tanda kurung, yang harus Anda lakukan
adalah mengatakan jika penunjuk tanggal tanda hubung lebih besar dari bulan.
Dan itu agak intuitif karena tanda hubung lebih besar dari semacam mengatakan itu menunjuk ke sesuatu.
Dan tanda hubung tanggal lebih besar dari bulan.
Dan penunjuk tanggal adalah penunjuk dan itulah mengapa Anda menggunakan tanda hubung lebih besar dari.
Sekarang jika itu adalah struktur bersarang,
Anda akan melakukan tanda hubung lebih besar daripada struktur dan kemudian
Anda harus melakukan titik setelah itu untuk mengakses elemen struktur bersarang.
Tetapi karena penunjuk hari adalah penunjuk, Anda harus menggunakan tanda hubung sama dengan atau tanda
hubung lebih besar dari.
Jadi inilah contohnya, kami membuat tanggal struct kami, kami
memiliki tiga elemen lalu kami membuat penunjuk tanggal penunjuk kami dan kami hanya membuat
variabel biasa hari ini. Kami menetapkan ke pointer
kami alamat hari ini dan kemudian untuk menetapkan elemen sebenarnya dari
struct, kami hanya menggunakan tanda hubung yang lebih besar dari dan kemudian kami dapat mencetaknya.
Jadi mari kita lihat ini di blok kode untuk melihat cara kerjanya.
Jadi saya akan menempatkan contoh ini di sini.
Dan biasanya ketika Anda mendefinisikan struktur, Anda
mendefinisikannya di luar fungsi karena Anda dapat menggunakannya dalam fungsi apa pun.
Ini semacam global. Tetapi ingat bahwa
ketika Anda mendefinisikan struktur, Anda tidak benar-benar membuat memori apa pun.
Jadi Anda tetap membuat variabel sebagai variabel atau pointer lokal, tetapi
definisi sebenarnya berada di luar fungsi.
Jadi jika Anda ingin menggunakannya, Anda dapat menggunakannya dalam fungsi apa pun.
Jadi di sini di bagian atas, kami telah membuat struct baru dengan tipe
tanggal atau nama hingga saat ini dan berisi tiga bilangan bulat, kami mengakhirinya dengan titik koma.
Kami kemudian membuat beberapa variabel di dalam main.
Salah satu yang hanya tanggal struct variabel normal hari
ini dan kemudian yang pointer. Kita tahu bahwa itu pointer karena memiliki tanda bintang sebelum itu.
Kita tahu bahwa pointer saat Anda membuat pointer, itu hanya membuat mengalokasikan memori untuk
menyimpan alamat itu untuk itu untuk nilai pointer itu.
Jadi kita harus benar-benar menetapkan alamat yang kita lakukan dengan ampersand hari
ini karena itu sebenarnya membuat laporan memori.
Jadi sekarang penunjuk tanggal akan menunjuk ke apa pun
hari ini dengan alamat hari ini.
Kami kemudian dapat mulai menetapkan data untuk itu dengan menggunakan tanda hubung ini lebih dari
sangat berguna dan hanya menetapkan data seperti orang lain hanya menggunakan operator penugasan.
Dan kemudian ketika kami mencetaknya,
Anda akan melihat bahwa kami tidak perlu melakukan de-referensi untuk mencetaknya.
Untuk mencetaknya,
kita bisa saja mengatakan tipe data untuk penentu format di sini persen lebih
tinggi persen d sama untuk bilangan bulat dan kemudian kita hanya menggunakan
dash grader karena itu benar-benar melakukan de-referensi ingat.
Sekarang kita bisa mengubah ini dan ini akan valid.
Kita harus memasukkan tanda kurung dan kemudian kita harus mengatakan bulan titik.
Either way baik-baik saja, tetapi terbiasa dengan tanda hubung kemudian lebih besar karena sintaksnya lebih baik.
Dan sekarang saat kami
membuat ini, Anda akan melihatnya mencetak nilai penunjuk
tanggal dan semuanya disetel ke 9 25 dan 2015.
Jadi dikatakan tanggal hari ini adalah 9 25 15. Itu diformat untuk dicetak seperti itu.
Hal-hal yang cukup sederhana.
Ingatlah bahwa tanda hubung lebih besar dari, itu adalah
sintaks baru untuk pointer ke struct.
Tapi semua yang lain di sini biasa saja.
Kita tahu bahwa pointer harus memiliki alamat toko sehingga kita
tahu kita harus mengalokasikan memori dinamis atau kita harus menetapkannya ke struct yang ada.
Mari kita kembali dan berbicara lebih banyak tentang struct dan pointer.
Sekarang mari kita bicara tentang struktur yang berisi pointer.
Kita tahu cara membuat pointer untuk struktur.
Kita bisa mengalokasikan memori untuk pointer itu jika kita tidak ingin menetapkan
alamat yang sudah ada dari pointer yang ada.
Tetapi Anda juga dapat memiliki elemen di dalam
struktur yang merupakan pointer itu sendiri. Jadi pointer juga bisa menjadi anggota struktur.
Kita tidak harus menggunakan array karakter itu.
Jadi kita bisa mengatakan struct,
kita bisa menamainya dalam pointer dan kemudian kita bisa menggunakan di sini dalam contoh ini kita memiliki dua
bilangan bulat, dua pointer bilangan bulat p1 dan p2, sintaks yang benar-benar valid untuk melakukan itu.
Jadi struktur yang disebut dalam pointer didefinisikan mengandung dua pointer integer.
Yang pertama disebut p1 dan yang kedua disebut p2.
Anda dapat mendefinisikan variabel tipe struct di pointer seperti biasa,
struct, int pointer, pointer.
Pointer variabel sekarang dapat digunakan seperti struct lainnya.
Pointer bukan pointer.
Ini adalah int pointer. Ini berisi dua elemen di dalam pukulannya
yang merupakan pointer, tetapi pointer itu sendiri bukanlah pointer yang sebenarnya.
Jadi perhatikan itu. Ini adalah variabel struktur yang memiliki dua pointer sebagai
anggotanya, itu berbeda.
Jadi jika kita ingin mengakses elemen di dalam
variabel pointer yang ada di pointer, kita
tidak menggunakan tanda hubung yang lebih besar dari karena pointer bukan pointer, melainkan struct.
Kami akan menggunakan titik
untuk mengakses p1 dan mengakses p2.
Jadi dalam contoh ini, kami membuat struktur
kami, kami membuat variabel. Ini bukan pointer yang disebut pointer.
Dan kemudian kita membuat dua bilangan
bulat, i1 sama dengan 100 dan i2 yang tidak diinisialisasi.
Sekarang p1 dan p2 adalah pointer.
Jadi mereka harus berisi alamat memori yang valid di mana alamat
telah dialokasikan memori.
Dan itulah yang dilakukan oleh i1 dan i2.
Saat Anda mendeklarasikan variabel integer, memori dialokasikan untuk integer tersebut.
Jadi dengan menetapkan alamat i1 dan i2 ke p1 dan p2, itu baik-baik saja karena i1
dan i2 memiliki memori yang dialokasikan karena mereka bilangan bulat.
Sekarang jika pointer integer bukan pointer integer tetapi pointer karakter, maka
Anda harus mengalokasikan memori dinamis.
Jadi sekarang kita hanya menggunakan bilangan bulat, jadi kita menetapkan alamat dari dua bilangan bulat ke p1 dan p2.
Kita sekarang dapat mengatakan penunjuk bintang. p2 sama dengan 97, negatif
97.
Mengapa kita harus melakukan de-referensi di
sana karena pointer. p2 adalah apa yang kami referensikan.
Pointer. pt p2 adalah penunjuk.
Kami tidak mengakses elemen struktur.
Kami mendereferensikan semua petunjuk. hal2.
Dan kita akan menetapkan nilai dari apa pun yang mengarah ke negatif 97.
Jadi perhatikan perbedaannya di sana.
Kami tidak membuat penunjuk struktur.
Kami sedang membuat pointer variabel biasa, tetapi
berisi dua elemen yang pointer.
Jadi jika kita ingin menetapkan dua elemen di dalam struktur tersebut, kita harus
melakukan de-referensi menggunakan operator tipuan, dan itulah yang kita
lakukan di sana.
Dan kemudian dalam dua pernyataan cetak kami.
Sekali lagi, kami ingin mencetak nilai dari apa yang ditunjuk oleh
p1 sehingga kami melakukan de-referensi sama
dengan p2 dan kemudian kami
juga ingin mencetak lagi nilai yang ditunjuk oleh pointer.
Jadi dalam yang pertama kita katakan i1 sama
dengan persen I koma pointer. p1 sama dengan
persen I.
Jadi yang pertama di dalam tanda kutip ganda hanya mencetak teks
yang sebenarnya, itu tidak menghilangkan referensi apa pun setelah koma adalah tempat kita melakukan de-referensi.
Kami pertama-tama mencetak i1 yaitu 100 dan kemudian
mencetak pointer p1 yang akan menjadi 100.
I2 sebenarnya akan menjadi
negatif 97 setelah kita menetapkannya ke p2.
Jadi bagaimana dengan array karakter atau pointer karakter. Pada kuliah sebelumnya, kita telah berbicara
tentang bagaimana Anda dapat membuat array karakter sebagai elemen di
dalam sebuah pointer. Tapi bagaimana dengan pointer karakter,
haruskah kita melakukan
sesuatu seperti pertama dan terakhir memiliki
array karakter atau haruskah kita melakukan sesuatu seperti pertama dan
terakhir dengan pointer karakter sebagai elemen. Apa pilihan yang lebih baik.
Yah, kita akan lihat. Ini benar-benar lagi hal notasi tetapi ada keuntungan menggunakan pointer.
Jadi ketika kita membuat pointer ke karakter di dalam elemen kita,
biasanya itu sedikit lebih baik.
Tetapi Anda perlu memahami apa yang terjadi di sini
ketika Anda membuat elemen array char array sebagai elemen atau pointer sebagai elemen,
keduanya valid. Tapi ada perbedaan besar.
Jadi jika kita mengatakan nama struct
veep atau vp dan kita mengatakan Talia dan Summers dan kemudian
kita mengatakan nama pointer struct. Jadi ingat, nama struct berisi array karakter.
Nama pointer struct berisi pointer.
Dan kami di sini menginisialisasi pointer yang sama dengan Brad dan Fallingjaw.
Dan kemudian kita mencetaknya kita akan mencetak elemen pertama,
yang merupakan karakter a dan vp dan
kemudian elemen pertama dari treas, yang merupakan pointer ke pertama.
Jadi struct menamai variabel veep.
Apa yang terjadi di sini adalah string disimpan di dalam struktur.
Struktur telah mengalokasikan total 40 byte untuk menampung dua nama, mereka
adalah array karakter.
Itulah yang terjadi ketika kita membuat array karakter di dalam pointer.
Kami mengalokasikan 40 byte untuk menampung dua nama
itu, 20 dan 20.
Untuk pointer menamai variabel treas apakah kita memiliki dua pointer pertama dan terakhir, ini
adalah string yang disimpan di mana pun kompiler menyimpan konstanta string.
Struktur memegang dua alamat karena
mereka adalah pointer. Pointer berisi, apa, nilai yang merupakan alamat.
Jadi yang akan dilakukan adalah mengalokasikan dua pointer di dalam struktur itu.
Itu 16 byte untuk sebagian besar sistem, pointer biasanya 8 byte atau 4 byte.
Struktur nama struct p tidak mengalokasikan ruang untuk menyimpan string karena
hanya mengalokasikan ruang untuk pointer itu sendiri.
Pointer memiliki nilai yang merupakan alamat.
Alamat yang ditunjuknya tidak ada memori yang dialokasikan untuk itu.
Jadi saat Anda membuat dua pointer tersebut, tidak ada memori yang dialokasikan untuk kedua pointer tersebut.
Itu tidak mengalokasikan ruang.
Jadi itu hanya dapat digunakan dengan string yang memiliki ruang yang dialokasikan untuk mereka di tempat lain.
Setiap kali Anda memiliki pointer di dalam struktur, Anda
harus menggunakan malloc atau calloc.
Jika tidak, mereka dapat disimpan di mana pun konstanta string disimpan.
Dan itulah perbedaan besarnya. Jadi pointer dan struktur nama p
harus digunakan hanya untuk mengelola string yang dibuat dan dialokasikan di tempat lain dalam program.
Anda tidak ingin menetapkan
data untuk itu kecuali Anda telah mengalokasikannya secara dinamis atau yang telah
dialokasikan di tempat lain, mungkin
oleh struct yang ada atau sesuatu. Tapi biasanya, Anda ingin malloc pointer tersebut.
Sekali lagi, sangat berbeda.
Anda mengalokasikan 40 byte untuk dua array karakter ini di dalam nama struct.
Untuk struct nama p, Anda memiliki dua pointer.
Tidak ada memori yang dialokasikan untuk itu saat Anda membuat variabel jenis itu.
Itu hanya membuat memori untuk dua pointer karakter, yang masing-masing delapan byte.
Untuk benar-benar mengalokasikan memori untuk apa yang pertama dan terakhir menunjuk, Anda harus melakukan malloc.
Jadi satu contoh di mana masuk akal untuk menggunakan pointer dan struktur
untuk menangani string
adalah jika Anda secara dinamis mengalokasikan memori itu.
Itu biasanya saat Anda menggunakannya
karena tipe data lain yang diizinkan secara otomatis akan mengalokasikan memori untuk Anda.
Jadi Anda ingin menggunakan pointer untuk menyimpan alamat.
Ini memiliki keuntungan bahwa Anda dapat meminta malloc untuk mengalokasikan hanya jumlah ruang
yang diperlukan untuk sebuah string. Kami berbicara tentang keuntungan dari alokasi memori dinamis.
Saat Anda membuat sesuatu secara statis pada waktu kompilasi, Anda
hanya akan membuat sejumlah byte tertentu.
Apa yang terjadi jika Anda membutuhkan lebih banyak byte, Anda kacau, program Anda tidak akan bekerja.
Anda harus kembali dan mengkompilasi ulang. Dengan string yang dialokasikan secara
dinamis, Anda dapat menyesuaikan kembali, Anda dapat membuat memori sebanyak yang Anda butuhkan,
yang membuatnya jauh lebih efisien dalam program.
Jadi, Anda akan menggunakan malloc pada setiap pointer yang dibuat di dalam struct.
Jadi dalam hal ini, Anda memiliki struct bernama name count.
Anda memiliki dua pointer, pointer karakter fname dan nama belakang.
Dan kemudian Anda memiliki int, huruf.
Dua string di dalam sini tidak disimpan dalam struktur.
Kami hanya membuat memori untuk pointer, yang berisi alamat.
Kami ingin membuat memori untuk fname dan lname untuk apa yang ditunjuk oleh pointer.
Jadi kami ingin menyimpannya dalam chunk yang dikelola oleh lokasi memori dinamis, yaitu menggunakan malloc.
Alamat dari dua string adalah apa yang disimpan, bukan apa yang mereka tunjuk.
Jadi alamat adalah fungsi penanganan string yang biasanya bekerja, yang bagus
dan itulah mengapa Anda ingin menggunakan pointer di sana
karena Anda tidak perlu melakukannya maka Anda bisa menyebarkannya dengan lebih mudah.
Jadi inilah contohnya. Kami memiliki fungsi yang disebut get info.
Dibutuhkan sebuah penunjuk.
Dan kita dapat meneruskan penunjuk itu dengan sangat mudah.
Sekarang kita juga akan membuat yang lain
atau untuk array pointer kita yang sedang
kita lewati, kita akan mengalokasikan memori
untuk itu.
Jadi Anda akan melihat bahwa kami membuat karakter yang disebut temp
dan kemudian kami menyimpan beberapa data di temp itu.
Kami meminta pengguna untuk mendapatkan sesuatu. Kami tidak akrab dengan sget, tetapi itu sama dengan sedikit scanf yang disimpan.
Kemudian kami mengalokasikan memori untuk fname di dalam pointer itu dan kami melakukannya seperti kami
mengalokasikan memori untuk karakter apa pun. Kami memanggil malloc,
kami memberikan jumlah byte.
Dalam hal ini, panjang str 10 ditambah 1 untuk terminator nol.
Dan kemudian ingat, malloc berubah menjadi bintang kosong, jadi kami melemparkannya ke bintang karakter.
Tapi ini sangat penting di sini. Panggilan malloc ini diperlukan untuk setiap struktur yang berisi pointer.
Sekarang kami memasukkan pointer ini dan pointer tidak pernah memiliki memori yang dialokasikan
untuk itu.
Jadi kami mengalokasikan memori di dalam sini. Kami kemudian dapat melakukan salinan kami dengan sangat mudah.
Kita dapat menyalin temp ke fname dari struktur kita pst yang
diteruskan sebagai parameter.
Dan kemudian kita dapat meminta mereka memasukkan nama belakang mereka, kita dapat malloc lebih banyak memori
untuk nama belakang dan kemudian disimpan dalam variabel struct nama belakang.
Inilah yang perlu Anda lakukan ketika Anda memiliki pointer ke karakter
di dalam struktur Anda, Anda harus melakukan malloc.
Karena sekali lagi, pointer tersebut hanya menyimpan alamat.
Mereka mengalokasikan cukup memori untuk menyimpan alamat, tidak
cukup memori untuk menyimpan string.
Jadi apa pun yang ditunjuk oleh alamat itu, Anda harus mengalokasikan memori untuk
itu dan Anda melakukannya seperti biasa
dengan malloc, satu-satunya perbedaan adalah di sini Anda menggunakan tanda hubung lebih
besar dari untuk mengakses elemen aktual di dalam struct itu, yang merupakan penunjuk karakter,
sehingga Anda dapat menetapkannya dan itu melakukan de-referensi.
Jadi, Anda pasti ingin bermain-main dengan hal ini. Ini sangat umum
untuk pointer karakter di dalam struct.
Kami akan memiliki tantangan di mana Anda akan perlu melakukan ini. Tapi bermain-main dengan kode ini, masuk
ke dalam blok kode, mulai mengalokasikan memori untuk string atau pointer
karakter di dalam struct dan lihat bagaimana Anda kemudian
dapat menggunakan str copy untuk benar-benar memasukkan data ke dalamnya, tetapi Anda harus
mengalokasikan memori terlebih dahulu sebelum Anda menetapkan .
Jika Anda melakukan konstanta seperti pada contoh sebelumnya siapa yang tahu di mana memori itu dialokasikan.
Jadi sekali lagi, banyak konsep penting yang disajikan dalam kuliah ini.
Gagasan tentang struktur yang merupakan penunjuk dalam sintaks
baru ini di
mana Anda dapat menggunakan tanda hubung kemudian lebih besar daripada
menggunakan operator tipuan, sangat bagus.
Dan kemudian benar-benar memiliki elemen sebagai pointer dan bagaimana
Anda harus mengalokasikan memori untuk pointer karakter. Terima kasih.