Здравствуйте, Caracrist, Вы писали:
C>1. где ты такое откомпилировал?
А что смущает?
C>2. если передать туда "" где будет перый нолик после твоей магии?
Это не магия, это демонстрация, что так делать нельзя.
Код упадёт и без "".
Здравствуйте, Caracrist, Вы писали:
K>>Здравствуйте, Аноним, Вы писали:
K>>
K>> char * v = "try";
K>>
C>1. где ты такое откомпилировал?
А что, у тебя это где-то не компилируется? Что за компилятор?
Эта возможность в C++03 была зафиксирована в стандарте языка:
4.2 Array-to-pointer conversion
2 A string literal (2.13.4) that is not a wide string literal can be converted to an rvalue of type “pointer to char”; a wide string literal can be converted to an rvalue of type “pointer to wchar_t”. In either case, the result is a pointer to the first element of the array. This conversion is considered only when there is an explicit appropriate pointer target type, and not when there is a general need to convert from an lvalue to an rvalue. [Note: this conversion is deprecated. See Annex D. ] For the purpose of ranking in overload resolution (13.3.3.1.1), this conversion is considered an array-to-pointer conversion followed by a qualification conversion (4.4). [Example: "abc" is converted to “pointer to const char” as an array-to-pointer conversion, and then to “pointer to char” as a qualification conversion.]
В стандарте C++11 этого пункта уже нет, но компиляторы продолжают поддерживать эту возможность: http://ideone.com/JIJNIa
--
Не можешь достичь желаемого — пожелай достигнутого.