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に関しては初心者なので、何が起こっているのかわかりません。