DAVID เจลัน: ดังนั้นปรากฎว่า คัดลอกสตริงไม่ได้เกือบเป็น ง่ายเหมือนกับการคัดลอกดั้งเดิม, เช่น int หรือลอย หลังจากที่ทั้งหมดภายใต้ประทุนสตริง เป็นตัวอักษรลำดับ ดังนั้นการคัดลอกสตริงจึงมีการ ที่เกี่ยวข้องกับการคัดลอกลำดับที่ทั้ง ตัวอักษร ลองหันความสนใจของเรากลับไปที่ การดำเนินงานที่ผ่านมาและตัดออกนี้ สายสตริงทีเท่ากับ s ซึ่ง อย่างชัดเจนไม่เพียงพอ ลองแทนที่ด้วยสายที่ ดูแทนเช่นนี้ สตริงทีได้รับ malloc ความยาวสตริงของ s บวก 1 เท่าของขนาดของถ่าน ขณะนี้จะมีการอ้างอิงไปนิด ในบรรทัดของรหัสนี้ แรก malloc, สั้นสำหรับหน่วยความจำ การจัดสรรและ ฟังก์ชั่นไม่เพียงแค่นั้น ป.ร. ให้ไว้ ณ จำนวนเต็มก็จะกลับสู่คุณ ที่อยู่ของหน่วยความจำอันของ ไบต์ที่หลาย ในขณะที่ความยาวสตริงของ s บวก 1 มีขึ้นเพื่อแสดงให้เห็นว่าเราต้องการเป็น ไบต์เป็นจำนวนมาก s ตรงแล้ว รวมทั้งยุติ null การทำงานที่ 0 ทับขวาที่ส่วนท้ายของสตริง ในขณะที่ฉันไม่จำเป็นต้องจำ วิธีใหญ่เป็นถ่านแม้ แต่ในระบบส่วนใหญ่เป็นเพียง 1 ไบต์ดังนั้นฉันจะเรียกขนาดของถ่านที่จะ คิดออกว่าใหญ่แบบไดนามิก ตัวบุคคลเป็น เมื่อคูณด้วยกันฉันจะได้รับกลับ จำนวนไบต์ที่ฉันต้องการ แต่สิ่งที่ถ้า malloc ล้มเหลวในการ กลับหน่วยความจำที่เราต้องการ ฉันต้องการที่ดีที่สุดตรวจสอบดังต่อไปนี้ หากเสื้อเท่ากับโมฆะแล้วฉันจะเป็นครั้งแรก จะฟรี, หน่วยความจำที่ส่งกลับโดยได้รับ สตริงและจากนั้นฉันจะไป 1 คืนเพื่อให้มีความหมายว่าข้อผิดพลาด แต่ถ้าทั้งหมดเป็นอย่างดีผมจะดำเนินการต่อไป ที่จะใช้วงสี่และย้ำ ดังต่อไปนี้ สำหรับ int ฉันได้รับ 0, n เท่ากับ ความยาวสตริงของ s ฉันจะทำเช่นนี้ตราบใดที่ฉันเป็น น้อยกว่าหรือเท่ากับ n เพื่อที่ฉัน ย้ำผ่านและรวมถึง ตัวละครยกเลิกโมฆะใน s และในแต่ละรอบฉัน จะเพิ่มฉัน ในขณะที่ด้านในของวงนี้คัดลอก s อักขระ i th-เป็นเสื้อของฉัน th- สถานที่มันพอเพียงที่จะทำเสื้อ วงเล็บที่ฉันได้รับ s วงเล็บฉัน ฉันต้องการที่ดีที่สุดเพิ่มหนึ่งเพิ่มเติม สายรหัสของฉัน โดยเฉพาะอย่างยิ่งเพราะฉันตอนนี้ใช้ malloc ขอให้หน่วยความจำก็ของฉัน ความรับผิดชอบในการเพิ่มหน่วยความจำที่ เมื่อฉันทำกับมันเช่นเดียวกับเรา ควรจะพ้นหน่วยความจำที่ ให้เราได้รับสาย ดังนั้นที่ปลายสุดของโปรแกรมนี้ฉัน จะเพิ่มสายการเพิ่มเติมอย่างใดอย่างหนึ่ง ฟรีเสื้อก่อนที่จะกลับ 0 เพื่อแสดงความสำเร็จ ตอนนี้ขอบันทึกรวบรวมและ รันโปรแกรมใหม่นี้ ทำสำเนาสำเนา 1 จุดเฉือน 1 และฉันจะพูดอะไรบางอย่างเช่น สวัสดีในพิมพ์เล็กทั้งหมด และโชคดีที่เวลานี้ของฉัน เดิมยังคงไม่เปลี่ยนแปลง สวัสดีในพิมพ์เล็กทั้งหมด แต่สำเนาเป็นแท้จริงพิมพ์ใหญ่