- 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
bormand 24.02.2013 20:05 # +3
bormand 24.02.2013 20:12 # +1
LispGovno 25.02.2013 07:21 # 0
bormand 25.02.2013 08:43 # +1
Не смотрел что по поводу модификации литерала говорит стандарт, но по идее это должен быть UB. Именно UB на модификации литерала позволяет компилятору группировать одинаковые литералы в один. Без UB'а он не имел бы никакого права так делать.
Ну и в линухе вот такой код падает с сегфолтом:
defecate-plusplus 25.02.2013 09:20 # +5
про то, что "куда дел константность, ирод?"
bormand 25.02.2013 10:29 # +3
Ну gcc в крестах выдает по дефолту. А в сишке - только если включен -Wwrite-strings, почему-то не входящий в -Wall и -Wextra. Видимо из-за того, что для сишки пихание литералов в char* долгое время считалось нормальной практикой, и при сборке говна мамонта не юзающего const типичной старой сишколибы будут сыпаться тонны ворнингов.
defecate-plusplus 25.02.2013 10:53 # +3
Ccik 25.02.2013 13:03 # 0
absolut 26.02.2013 12:41 # 0
bormand 26.02.2013 12:59 # +1
absolut 26.02.2013 13:23 # 0
roman-kashitsyn 26.02.2013 13:27 # +2
TarasB 27.02.2013 15:03 # +3
Я раньше не знал...
Ccik 27.02.2013 16:36 # +1
absolut 27.02.2013 20:38 # +1
TarasB 28.02.2013 18:33 # 0
bormand 24.02.2013 21:02 # 0
http://msdn.microsoft.com/en-us/library/ms228599.aspx
Самый нижний пример на странице.
Ccik 25.02.2013 00:05 # 0
guest 26.02.2013 01:49 # 0