要一块、用一块、还一块
(本条路线统一用 gcc -std=c11 -O0 编译)程序自己数着"要了几次、还了几次":
#include <stdio.h>
#include <stdlib.h>
static int got = 0, gave = 0;
int *take(int n) { got++; return malloc(n * sizeof(int)); }
void give(int *p) { gave++; free(p); }
int main(void) {
int *a = take(4);
for (int i = 0; i < 4; i++) a[i] = (i + 1) * 10;
int s = 0;
for (int i = 0; i < 4; i++) s += a[i];
give(a);
printf("%d/%d/%d/%d\n", s, got, gave, got - gave);
return 0;
}
全部评论