【c语言】在vscode上本地调试代码的时候,遇到了段错误,检查了下应该没有数组越界的问题,并且这个答案在lc上也可以通过,请大家帮忙看下什么原因,感谢!
以下是代码:
#include"string.h"
#include"stdlib.h"
#include"stdio.h"
void makeAround1To0(char** grid, int x, int y, int gridSize, int gridColSize){
if (y > 0){
if (grid[x][y - 1] == '1'){
grid[x][y - 1] = '0';
makeAround1To0(grid, x, y - 1, gridSize, gridColSize);
}
}
if (y < gridColSize - 1){
if (grid[x][y + 1] == '1'){
grid[x][y + 1] = '0';
makeAround1To0(grid, x, y + 1, gridSize, gridColSize);
}
}
if (x > 0){
if (grid[x - 1][y] == '1'){
grid[x - 1][y] = '0';
makeAround1To0(grid, x - 1, y, gridSize, gridColSize);
}
}
if (x < gridSize - 1){
if (grid[x + 1][y] == '1'){
grid[x + 1][y] = '0';
makeAround1To0(grid, x + 1, y, gridSize, gridColSize);
}
}
return;
}
int numIslands(char** grid, int gridSize, int* gridColSize)
{
int islandCount = 0;
for (int i = 0; i < gridSize; i++){
for (int j = 0; j < gridColSize[i]; j++){
if (grid[i][j] == '1'){
grid[i][j] = '0';
makeAround1To0(grid, i, j, gridSize, gridColSize[i]);
islandCount++;
}
}
}
return islandCount;
}
char *grid[4] = {
"11110",
"11010",
"11000",
"00000"
};
int main(void){
int gridSize = sizeof(grid)/sizeof(grid[0]);
sizeof(grid[0][0]) 将返回 char 类型的大小,通常是1字节。
int gridColumnSize = strlen(grid[0]);
int res = numIslands(grid, gridSize, &gridColumnSize);
printf("%d",res);
}
出现段错误在这里
不确定是不是不可以修改传的参数,也不清楚属于哪里的知识点,请大牛指路
int numIslands(char** grid, int gridSize, int* gridColSize)
这里面你传的 gridColSize
是个int指针,但不是数组,gridColSize[i]
这里得到的值可能是个很大的数字所以出现问题
char *grid[4] = {
"11110",
"11010",
"11000",
"00000"
};
字符串字面量是不能修改的。
idl文件,内容比较多,我删减了一些东西,不知道大佬可以从这里面看出哪个是 CLSD 和IID不。 有偿!!!有偿!!!有偿!!!很急
问题1 https://segmentfault.com/q/1010000044340018 问题2 https://segmentfault.com/q/1010000044380820 问题3 这段脚本中 计算一个线程的 timeout作为score。 实际编码时 Redisson.create().getFairLock("test").tryLock(waitTime,leaseTime
C:\用户\华硕 3m增加了4个包,更改了713个包,审计了718个包 17个包正在寻找资金运行了解详细信息 发现0个漏洞
有一组输入字符串和一组查询字符串。对于每个查询字符串,确定它在输入字符串列表中出现的次数。返回结果数组。 //线程“main”中出现异常Java . lang . indexoutofboundsexception:在Java . base/JDK . internal . util . preceditions . out of bounds(preceditions . Java:64)在Ja
下面是监控网卡流量的 shell 脚本,运行后提示: expr:语法错误 看来看去不知道哪里出错了。