& num1 - это символ **, не так ли?
Это char (*)[11]
.Тот факт, что вы применили char **
, перекрыл предупреждения компилятора.
То, что вы делаете, является совершенно неопределенным поведением.Вы не можете сделать num1
точкой где-то еще, потому что она никуда не указывает с самого начала: это массив, а не указатель.
EDIT
Как указывает Пол Р., вотчто, вероятно, происходит.Первые sizeof(char *)
символы каждой строки интерпретируются как указатель, а затем они меняются местами.То, что происходит по существу, зависит от размера указателя на вашей реализации.Это довольно интересно, однако я уверен, что оно все еще считается неопределенным.