创建三维数组在visual studio 2017没有报错,但是在leetcode报错heap-buffer-overflow
错误写法
int ***IntervalIndex = (int***)malloc(sizeof(int)*max);
for (int i = 0; i < max; i++)
{
IntervalIndex[i] = (int**)malloc(sizeof(int)*EventAccount[i]);
for (int j = 0; j < EventAccount[i]; j++)
{
IntervalIndex[i][j] = (int*)malloc(sizeof(int) * 2);
memset(IntervalIndex[i][j], -1, sizeof(int) * 2);
}
}
正确写法
int ***IntervalIndex = (int***)malloc(sizeof(int**)*max);//注意sizeof(int)改为sizeof(int**)
for (int i = 0; i < max; i++)
{
IntervalIndex[i] = (int**)malloc(sizeof(int*)*EventAccount[i]);//注意sizeof(int)改为sizeof(int*)
for (int j = 0; j < EventAccount[i]; j++)
{
IntervalIndex[i][j] = (int*)malloc(sizeof(int) * 2);
memset(IntervalIndex[i][j], -1, sizeof(int) * 2);
}
}