กำลังเริ่มการทำงานใช้เส้นสายอยู่ใน C

0

คำถาม

ฉันเริ่มที่จะเรียนรู้ C แล้วก็ได้เรียนรู้มันใช้เส้นสายเป็นแค่ arrays ของ chars. ฉันอยากจะเห็นค่าของอยู่ในเชือกที่ทุกอให้ช่วงเวลาดังนั้นฉันตั้งจุดหยุดใน vscode,ก้าวผ่านการประหารและมองทั้งหมค่า.

int main()
{
    char a[4] = "foo";
    char b[4] = "bar";

    return 0;
}

ฉันเห็นมันก่อนที่กำลังเริ่มการทำงานที่ a[] อาเรย์มันมีอยู่แล้วคุณค่าในหน่วยความจำจนหมดแล้ว screenshot of vscode while debugging.

คำถามคืออะไรพวกนั้นค่า? ทำไมพวกเขาอยู่ที่นั่น? อะไรพวกเขาเป็นตัวแทนของ?

c
2021-11-24 06:29:21
4

คำตอบที่ดีที่สุด

1

ตอนที่ defining เป็นค่ามันต้องใช้ส่วนหนึ่งของความทรงจำนั่นอาจจะต้องถูกกักบริเวณอยู่ตัวเลขอื่นๆ. มันเป็นตัวเลขพวกนั้นจะถูกแสดงในการดีบั๊กของคุณตื่นเต้นหน่อย

2021-11-24 14:32:02
0

ตอนที่คุณก่อนประกาศอาเรย์หรือตัวแปรมันคือกำหนดความทรงจำและความทรงจำสามารถมีบางค่าถังขยะอยู่แล้วดังนั้นมันเหมือนลายนิ้วมือแบบนี้

ขยะค่า สามารถเป็นอะไรภาษามาตรฐานไม่ได้กำหนดสิ่งที่มันควรจะเป็น

2021-11-24 12:55:09
0

ความทรงจำคือความทรงจำมันอาจจะเป็น uninitialized(หรือเต็มไปด้วยขยะ)หรือมันอาจจะเป็นสามารถใช้ถอยู่กับข้อมูล

ในกรณีของคุณตอนที่ของคุณโปรแกรมกระโดดของคุณหลักฟังก์ชันงานสร้างมาเพื่อมันนั่นก็มีของคุณท้องถิ่นตัวแปร(ของคุณท้องถิ่นตัวแปรเป็น char อาเรย์คุณประกาศ,โดยพื้นฐานแล้วเป็น pointer เพื่อที่ไหนสักแห่งในความทรงจำกับความ). ก่อนที่คุณสามารถใช้ถอพูดชี้ประเด็น a แล้ว b เพื่อประเด็นของคุณข้อความพวกเขาจะต้องถูกกักบริเวณอยู่ไหนเก่าของตัวเลขและดังนั้นพยายามเพื่ออ่าน"ข้อความ"ในตอนนั้นที่อยู่ของจะให้คุณแรนดอมมากกองขยะ

ตัวอย่างเช่นถ้าคุณเขียน int a = 5; ในของโปรแกรมและก้าวผ่านคุณจะเหมือนๆกันเห็นว่าอาจจะมีบางอย่าสุ่มเลขก่อนที่คุณกำหนดมัน 5.

2021-11-24 07:01:48

ฉันเห็นด้วย แต่สิ่งที่ฉันไม่สามารถดูเหมือนจะเข้าใจคือทำไมฉันถึงเห็นเหมือนกัค่า everytime ฉันการดีบั๊กโปรแกรม?
jon doe
-1

ตอนที่คุณสร้างค่าใหม่เหมือน integers หรือ arrays,ระบบจะทำให้พวกค่าที่อยู่สำหรับการช่วยปกป้องข้อมูลนั้นอยู่แล้ว มันอาจจะยังมีข้อมูลบางอย่างบนนั้นที่อยู่สำหรับโปรแกรมอื่นและหลังจากปิดโปรแกรมแพนจะไม่เอาพวกเขาดังนั้นก่อนที่กำลังเริ่มการทำงานคุณจะเห็นพวกนั้นข้อมูล

2021-11-24 07:08:54

โดยทั่วไป-ตั้งใจ multiuser ปฏิบัติการระบบความทรงจำของหนึ่งโพรเซสไม่เคยจะบรรจุข้อมูลจากอีกระบวนการยกเว้นสำหรับข้อมูลที่เป็นจงใจใช้ร่วมกัน ระบบปฏิบัติการล้างความทรงจำก่อนที่ reassigning มันอีกระบวนการรักษาความปลอดภัยหวัตถุประสงค์
Eric Postpischil

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่