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,有大佬知道这为啥报错吗
有我没说清楚的欢迎评论区提问