free
除非我调用指针,否则我的 ac 程序似乎运行良好。
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
int main()
{
int i;
gid_t *list;
int num_groups = getgroups(0, NULL);
list = malloc(num_groups * sizeof(list));
if (getgroups(num_groups, list) != -1)
{
for (i = 0; i < num_groups; i++)
{
printf("%d ", *list++);
}
}
free(list); // free(): invalid size: 0x0000000002448040 ***
return 0;
}
我见过很多类似的帖子都提到了无效的下一个尺寸,但不是无效的尺寸。
当谈到 c 时,我是一个新手 - 所以我无法弄清楚发生了什么。