qfedu-c-level/day12/homework/h2.c

27 lines
646 B
C

/*
找出以下程序的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 <stdio.h>
#include <stdlib.h>
#include <string.h>
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
}