load of null pointer of type 'int'

新手上路,请多包涵

leetcode上的463题目

int islandPerimeter(int** grid, int gridRowSize, int gridColSize) {
    if(grid == NULL || gridRowSize <= 0 || gridColSize <= 0) 
        return 0;
    grid = (int **) malloc ( gridRowSize * sizeof(int *));
//1土地  0 水
    int i = 0, j = 0;
    int sum = 0;
    int count = 4;
    for(i; i < gridRowSize; i++) {
        for(j; j < gridColSize; j++) {
            if( grid[i][j] == 0)
                continue;

            else {
                if( grid[i-1][j] == 1 && (i-1) >= 0) {   //如果该土地上面为土地
                    count --;
                }

                if( grid[i+1][j] == 1 && (i+1) <= gridRowSize-1) {   //如果该土地下面面为土地
                    count --;
                }

                if( grid[i][j-1] == 1 && (j-1) >= 0) {   //如果该土地左面为土地
                    count --;
                }

                if( grid[i][j+1] == 1 && (j+1) <= gridColSize-1) {   //如果该土地右面为土地
                    count --;
                }
                sum += count;
                count = 4;
            }
        }
    }

    return sum;
}

报错是"Line 11: load of null pointer of type 'int'"
也就是这一行代码
if(gridi == 0) continue;
请问这是什么原因?

阅读 6.9k
1 个回答

grid[i] 是个int* 不错,但是你的grid[i]指向哪里了你?你没有为它分配内存。

函数传入的grid有什么意义呢?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题