int** merge(int** intervals, int intervalsSize, int* intervalsColSize, int* returnSize, int** returnColumnSizes){ int c=&intervalsColSize; for(int i=0;i<intervalsSize;i++) { for(int j=i+1;j<intervalsSize;j++) { if(intervals[i][c]>=intervals[j][0]) { if(intervals[i][c]<intervals[j][c]) { intervals[i][c]=intervals[j][c]; } for(int k=j+1;k<intervalsSize;k++) { intervals[k-1][0]=intervals[k][0]; intervals[k-1][c]=intervals[k][c]; intervalsSize--; } } } } returnSize=&intervalsSize; returnColumnSizes=&c; return intervals; } 检错
时间: 2024-02-14 09:17:48 浏览: 109
oracle中merge into用法及实例解析
5星 · 资源好评率100%
这段代码存在一些问题,包括但不限于:
1. 在第一行中使用了错误的指针类型,应该使用指向指针的指针int***。
2. 在第二行中使用了错误的符号&,应该使用intervalsColSize而不是&intervalsColSize。
3. 在第9行中使用了错误的列索引c,应该使用intervalsColSize[i]而不是&intervalsColSize。
4. 在第12行中,如果合并两个区间,需要同时修改起始位置和终止位置,而不仅仅是终止位置。
5. 在第14行中,减少intervalsSize的值并不会删除intervals数组中的元素,需要使用memmove函数移动元素。
6. 在第16行和第17行中,应该使用指向指针的指针int**来设置returnSize和returnColumnSizes的值,而不是使用取地址符号&。
建议对代码进行仔细的检查和修改,确保其正确性。
阅读全文