int[5];
int * p2 = new int[25];
bool flag = ((p1 + 5) <= p2) ?
речь именно об указателях : то есть, хочется убедиться, что массивы "не пересекаются".
Некорректно, p1+5 может быть больше p2, если p1 в памяти "дальше"
bool flag = ((p1 + 5) <= p2) || ((p2 + 25) <= p1); - а так ?
Если вы хотите проверить, что массивы не пересекаются, то надо проверять и адреса начала и конца обоих массивов
А как они могут пересечься, если память выделяется через New??
Очевидно, что там что-то вроде void func(int * a, int * b);
Обсуждают сегодня