3
การจัดสรรสแต็คทำงานใน Linux อย่างไร
ระบบปฏิบัติการสำรองพื้นที่เสมือนที่ถูกต้องตามจำนวนที่แน่นอนสำหรับกองซ้อนหรืออย่างอื่นหรือไม่? ฉันสามารถสร้าง stack overflow โดยใช้ตัวแปรท้องถิ่นขนาดใหญ่ได้หรือไม่? ฉันได้เขียนCโปรแกรมขนาดเล็กเพื่อทดสอบสมมติฐานของฉัน มันทำงานบน X86-64 CentOS 6.5 #include <string.h> #include <stdio.h> int main() { int n = 10240 * 1024; char a[n]; memset(a, 'x', n); printf("%x\n%x\n", &a[0], &a[n-1]); getchar(); return 0; } เรียกใช้โปรแกรมให้&a[0] = f0ceabe0และ&a[n-1] = f16eabdf แม็พ proc แสดงสแต็ก: 7ffff0cea000-7ffff16ec000. (10248 * 1024B) จากนั้นฉันก็พยายามเพิ่ม n = …