- 1
- 2
- 3
- 4
- 5
- 6
fixed (char* p = "A")
{
p[0] = 'B';
}
Console.WriteLine("A");
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+140
fixed (char* p = "A")
{
p[0] = 'B';
}
Console.WriteLine("A");
Immutable strings
Не смотрел что по поводу модификации литерала говорит стандарт, но по идее это должен быть UB. Именно UB на модификации литерала позволяет компилятору группировать одинаковые литералы в один. Без UB'а он не имел бы никакого права так делать.
Ну и в линухе вот такой код падает с сегфолтом:
про то, что "куда дел константность, ирод?"
Ну gcc в крестах выдает по дефолту. А в сишке - только если включен -Wwrite-strings, почему-то не входящий в -Wall и -Wextra. Видимо из-за того, что для сишки пихание литералов в char* долгое время считалось нормальной практикой, и при сборке говна мамонта не юзающего const типичной старой сишколибы будут сыпаться тонны ворнингов.
Я раньше не знал...
http://msdn.microsoft.com/en-us/library/ms228599.aspx
Самый нижний пример на странице.