Я знаю, что небезопасно изменять адрес указателя, если он лежит в куче, потому что его освобождение позже вызовет некоторые проблемы, но безопасно ли это делать, если указатель объявлен в стеке?
Я говорю о чем-то вроде этого:
char arr[] = "one two three";
arr++;
//or arr--;
Надеюсь, я правильно понял, ссылаясь на массив символов как на указатель.
char * p = new char[100]; ++p;
Дело в том, что вы должны вызыватьdelete
с исходным указателем, напримерdelete p-1;
Это кошмар обслуживания, но не недопустимый по своей сути. - person Kerrek SB   schedule 07.09.2011