>> DAVID J. مالان: وهكذا اتضح أن نسخ سلسلة ليست ما يقرب من
البساطة نسخ بدائية، مثل الباحث أو عوامة.
بعد كل شيء، تحت غطاء سلسلة هو حرف التسلسل.
حتى نسخ سلسلة، وبالتالي، يجب أن تنطوي على نسخ كاملة من هذا التسلسل
حرفا.
>> دعونا نوجه اهتمامنا مرة أخرى إلى أن تنفيذ مشاركة ونقتلع هذه
الخط، سلسلة يساوي ر ق، والتي كان من الواضح ليس كافيا.
دعونا استبدالها الخط الذي يبدو، بدلا من ذلك، مثل هذا.
سلسلة ر يحصل malloc من طول سلسلة من ق زائد 1 مرة حجم شار.
>> الآن هناك اقتبس قليلا ذاهب على هذا في سطر من التعليمات البرمجية.
الأولى، malloc، قصيرة للذاكرة التخصيص، و
وظيفة يفعل ذلك بالضبط.
إعطاء عدد صحيح، فإنه يعود إلى لك عنوان جزءا من الذاكرة من
أن العديد من وحدات البايت.
وفي الوقت نفسه، وطول سلسلة من ليالي زائد 1 من المفترض أن تشير إلى أننا نريد كما
العديد من وحدات البايت كما ق تحتل بالفعل، بما في ذلك فاصل فارغة لها، و
0 مائل في نهاية سلسلة.
>> وفي الوقت نفسه، لا أتذكر بالضرورة كيف كبيرة هو شار، حتى
على الرغم من معظم النظم على انها مجرد 1 بايت، لذلك سأتصل حجم شار ل
معرفة كيفية حيوي كبير الطابع الفردي هو.
مرة واحدة مضروبة معا، أعود ل عدد البايتات التي أحتاج.
>> ولكن ماذا لو فشل malloc لل عودة الذاكرة نحتاج؟
أنا سوف تحقق أفضل لذلك على النحو التالي.
إذا ر يساوي فارغة، ثم أنا ذاهب الأولى ليالي الحرة، والذاكرة إرجاعها من قبل الحصول على
سلسلة، ثم أنا ذاهب ل العودة 1، للدلالة على الخطأ.
>> ولكن إذا كان كل شيء على ما يرام، وانا ذاهب الى المضي قدما لاستخدام حلقة أربعة وتكرار
على النحو التالي.
للحصول على كثافة العمليات ط 0، ن التساوي طول سلسلة من ليالي.
انا ذاهب الى القيام بذلك طالما أنا هو أقل من أو يساوي إلى n لدرجة أنني
تكرار حتى من خلال وبما في ذلك لاغية الطابع تنتهي في ليالي.
>> وعلى كل التكرار، وأنا الذهاب الى زيادة ط.
وفي الوقت نفسه، داخل هذه الحلقة، نسخ ق وحرف ط عشر إلى ر ط عشر
موقع، يكفي أن تفعل طن قوس ط ق يحصل قوس ط.
>> دعونا الآن حفظ وتجميع، و تشغيل هذا البرنامج الجديد.
جعل نسخة 1 نقطة مائلة نسخة 1.
وأنا أقول شيء من هذا القبيل مرحبا في كل صغيرة.
ولله الحمد، وهذا وقتي الأصلي دون تغيير.
مرحبا في كل صغيرة.
ولكن النسخة هو، في الواقع، رسملتها.