>> DAVID J. MALAN: Jadi ia ternyata bahawa menyalin rentetan tidak sebegitu
semudah menyalin primitif, seperti int atau apungan.
Lagipun, di bawah hood rentetan adalah watak-watak urutan.
Jadi menyalin tali, oleh itu, perlu melibatkan menyalin urutan seluruh
aksara.
>> Mari kita mengubah perhatian kita kembali kepada pelaksanaan lepas dan merobek keluar ini
line, tali t sama s, yang jelas tidak mencukupi.
Mari kita menggantikannya dengan garis yang kelihatan, sebaliknya, seperti ini.
Rentetan t mendapat malloc panjang rentetan s ditambah 1 kali saiz char a.
>> Sekarang ada quote sedikit akan di dalam bidang ini selepas kod.
Pertama, malloc, pendek untuk memori peruntukan, dan
fungsi tidak hanya itu.
Memandangkan integer, ia kembali kepada anda alamat sebahagian daripada ingatan
bahawa banyak bait.
Sementara itu, panjang tali s ditambah 1 bertujuan untuk menunjukkan bahawa kita mahu sebagai
banyak bait sebagai s sudah menduduki, termasuk terminator null, yang
garis sendeng terbalik 0 pada akhir rentetan.
>> Sementara itu, saya tidak semestinya ingat berapa besar char itu, walaupun
walaupun pada kebanyakan sistem ia hanya 1 bait, jadi saya akan memanggil saiz char untuk
memikirkan secara dinamik bagaimana besar watak individu adalah.
Apabila didarab bersama-sama, saya mendapat kembali jumlah bait yang saya perlukan.
>> Tetapi bagaimana jika malloc gagal kembali memori yang kita perlukan?
Saya terbaik akan menyemak yang seperti berikut.
Jika t sama batal, maka saya pertama akan s percuma, memori yang dikembalikan oleh mendapatkan
tali, dan kemudian saya akan kembali 1, untuk menandakan kesilapan.
>> Tetapi jika semuanya berjalan dengan lancar, saya akan meneruskan menggunakan gelung empat dan melelar
seperti berikut.
Untuk int i mendapat 0, n setaraf panjang tali s.
Saya akan melakukan ini selagi i adalah kurang daripada atau sama dengan n supaya saya
melelar atas melalui dan termasuk watak menamatkan null dalam s.
>> Dan pada setiap lelaran, saya akan kenaikan i.
Sementara itu, di dalam gelung ini, salinan s i-ke-watak ke dalam t i-ke-
lokasi, ia mencukupi untuk melakukan t kurungan i mendapat s kurungan i.
>> Sekarang mari kita menyimpan, menyusun, dan menjalankan program baru ini.
Buat salinan 1 dot slash salinan 1.
Dan saya akan mengatakan sesuatu seperti hello dalam semua huruf kecil.
Dan bersyukur kerana, kali ini saya asal tidak berubah.
hello dalam semua huruf kecil.
Tetapi salinan yang adalah, sememangnya, dipermodalkan.