^
- побитовый оператор XOR.Результат operator^
является побитовым значением XOR операндов.
10^10 * sizeof(int)
равно 10^ (10*4)
из-за правил приоритета и приведет к выделению 34 байтов.
И если значение n
больше 8, вы получите доступ кпамять, которая выходит за пределы вашей программы в следующем выражении:
scanf("%lu",(N + i));
Чтобы избежать этого, вы можете сначала прочитать в n
, а затем использовать malloc
следующим образом:
malloc(n * sizeof(int))