ดังนั้นฉันจึงเห็นว่าบางคนไม่แนะนำให้ใช้ตัวอักษร String เพื่อสร้างอักขระใน C อย่างไรก็ตาม ฉันพบว่านี่เป็นวิธีที่มีประโยชน์ที่สุดและฉันมีชุดอักขระเป็น
char a[] = "456";
ฉันเข้าใจว่าหน่วยความจำได้รับการแก้ไขในประเภทข้อมูลนี้ อย่างไรก็ตาม ในงานมอบหมายของฉัน ฉันเชื่อว่าฉันต้องสามารถจัดสรรหน่วยความจำใหม่สำหรับค่าถ่านของฉันได้ เนื่องจากฉันกำลังบวกจำนวนเต็มที่แสดงเป็นสตริง ตัวอย่างเช่น:
char b[] = "500";
char c[] = "501";
//add function for adding b and c. have a char d[] equal to "1000".
ฉันใช้การเพิ่มแบบยาวเพื่อทำสิ่งนี้ให้สำเร็จ ฉันได้ลองทดลองใช้ฟังก์ชัน realloc แล้ว แต่ไม่ได้ผล ฉันจะต่อท้ายอักขระใหม่อย่างต่อเนื่องเข้ากับสตริงได้อย่างไร
char a[] = "456"
ตัวอักษรสตริงเป็นตัวเริ่มต้นของอาร์เรย์a
- person stensal   schedule 10.02.2019realloc()
จะทำงานหากใช้อย่างถูกต้อง การใช้อย่างถูกต้องไม่ใช่เรื่องยาก แม้ว่าจะใช้งานไม่ถูกต้องได้ง่ายมากก็ตาม คำอธิบายที่ดีกว่าคือฉันได้ลองใช้ฟังก์ชันrealloc()
แล้ว แต่ไม่สามารถหาวิธีใช้งานได้อย่างถูกต้อง - person Jonathan Leffler   schedule 10.02.2019realloc
ได้หากเขายืนยันที่จะใช้char a[] = "456";
เพื่อประกาศที่เก็บข้อมูล ความเข้าใจของฉันคือrealloc
สามารถจัดสรรพื้นที่เก็บข้อมูลที่จัดสรรบนฮีปใหม่เท่านั้น ช่วยแก้ให้ด้วยนะถ้าฉันผิด. - person stensal   schedule 10.02.2019realloc()
ในทางที่ผิดคือการลองและrealloc()
หน่วยความจำที่ไม่ได้จัดสรรไว้ก่อนหน้านี้ วิธีแก้ปัญหาที่ใช้realloc()
และเพื่อนๆ จะต้องมีการแก้ไขโค้ดอย่างระมัดระวัง อย่างไรก็ตามก็สามารถทำได้realloc()
ไม่เสียหาย - person Jonathan Leffler   schedule 10.02.2019