/* 找出以下程序的bug, 并修正 int main() { const int *a = malloc(20); for (int i = 0; i < 20; i++) { *(a + i) = i; } printf("%d %d\n", a[0], a + 2); } */ #include #include #include int main() { int *a = malloc(20); // 修改1: 去掉 const 修饰 for (int i = 0; i < 20; i++) { *(a + i) = i; } printf("%d %d\n", a[0], *(a + 2)); // 修改2: a+2 加上解引用 *, 以取得元素值 free(a); // 修改3: 释放手动分配的内存空间 return 0; // 修改4: 加上 return 0 }