[C++]萌新问题,关于编译器警告
  • 板块学术版
  • 楼主Hall_Code
  • 当前回复9
  • 已保存回复9
  • 发布时间2023/1/31 16:37
  • 上次更新2023/10/24 02:21:51
查看原帖
[C++]萌新问题,关于编译器警告
475653
Hall_Code楼主2023/1/31 16:37
 int *_YCheck = new int[All - 1];
    YCheck = _YCheck;
    for (int i = 0; i < (All - 1); i++) {
        YCheck[i] = 0;
    }
    int* ti_L = new int;
    for (int i = 0; i < Wolf; i++) {
        while (true) {
            *ti_L = XM(0, (All - 2));
            if (YCheck[*ti_L] == 0) {
                YCheck[*ti_L] = 1;
                break;
            }
        }
    }

编译器在这段中有两个警告

第一个:

int *_YCheck = new int[All - 1];

对此句警告 C26451 算术溢出: 使用 4 字节值上的运算符 - ,然后将结果转换到 8 字节值。在调用运算符 - 之前将值强制转换为宽类型可避免溢出(io.2)

第二个:

if (YCheck[*ti_L] == 0) {

对此句警告 C6001 使用未初始化的内存“*_YCheck”

emm,有大佬知道这为啥报错吗

有我没说清楚的欢迎评论区提问

2023/1/31 16:37
加载中...