请帮我释放这个动态分配的数组

0 c arrays malloc free

row = n + 1;
col = n + 1;
//used n+1 and i=-1 to avoid segmentation faults

board = malloc(row*sizeof(char *));
for(i=-1;i<row;i++)
{       
    board[i] = malloc(col*sizeof(char));
    if(board[i] == NULL)
    {
        printf("Out of memory");
            exit(EXIT_FAILURE);
    }
}

for(i=-1; i < n+1; ++i)
{
    free(board [i]);
}
free(board);
Run Code Online (Sandbox Code Playgroud)

当我尝试在运行时释放这个数组时,我的编译器变得狂暴,请解释一下,谢谢.

Ani*_*nge 5

数组在C中不能有负索引.

在线: for(i = -1; i < row; i++)

我非常确定,这里有一个错误,在哪里free释放一个最后没有malloc()编辑的额外块,你必须得到一个段错误.