calloc(10,4) 和 calloc(1,40) 有什么区别?
我看到这种行为:
Thing** things = (Thing**)calloc(1, 10 * sizeof(Thing*));
// things[0] != 0
Thing** things = (Thing**)calloc(10, sizeof(Thing*));
// things[0] == 0
我想了解为什么。编辑:失去理智是为什么,现在两者似乎都为零......为了至少让这个问题变得有趣,为什么 calloc 不只接受一个参数,比如 malloc?