SPEAKER 1: Mari kita sekarang memperbaiki bahwa program terakhir. Dan kali ini, mari kita secara eksplisit mengalokasikan beberapa memori di mana input pengguna akan disimpan. Untuk melakukannya, mari kita mengasah dalam pada itu pertama baris kode di mana kita menyatakan s sebelumnya menjadi bintang arang. Kali ini, mari kita re-declare sebagai berikut - char s bracket 16, misalnya, braket dekat. Dengan kata lain, mari kita menyatakan untuk tidak lagi menjadi alamat dari karakter, melainkan sebuah array dari 16 karakter. Dengan cara ini, pengguna dapat mengetikkan sampai 15 karakter dan masih meninggalkan ruang untuk terminator null. Mari kita lanjutkan untuk Simpan, Kompilasi, dan Jalankan program ini. Membuat scanf2 dot slash scanf2. Mari kita sekarang ketik string seperti halo, dan kami mengucapkan terima kasih untuk hello. Sekarang, masih ada masalah. Saya hanya mengetik halo, yang hanya lima karakter, ditambah 1 untuk null terminator. Ini meninggalkan kita dengan hanya kebutuhan untuk enam byte. Tapi sayangnya, kita hanya dialokasikan 16 secara total. Jadi, jika pengguna benar-benar tipe di 16 karakter, atau 17, atau beberapa ratus karakter, kita masih tidak akan memiliki cukup ruang di memori untuk masukan pengguna. Dan pada kenyataannya, ini adalah apa yang membuat mendapatkan masukan pengguna sehingga sulit pada umumnya. Dan memang, ini adalah mengapa kita menerapkan get fungsi string dalam pertama Tempat di perpustakaan CS50 - untuk mengetahui bagaimana menangani mereka situasi dimana jenis pengguna dalam lebih karakter daripada kita awalnya diantisipasi. Terus terang, tanpa benar-benar menulis ulang program ini, tidak ada solusi yang bersih. Sebaliknya, apa yang kita harus lakukan adalah mendapatkan karakter dari pengguna satu per satu waktu, lagi dan lagi. Dan pada setiap titik jika kita menyadari kita dari memori, kita harus di saat itu kembali dan realokasi beberapa memori lebih, salin pengguna masukan sebelumnya dari potongan pertama kami memori ke yang baru, sepotong lebih besar dari memori. Dan kemudian mengulangi proses itu lagi dan lagi sampai pengguna dilakukan memberikan masukan nya.