- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
#include <iostream>
#include <string>
int main(void)
{
char arr[] = "All's well that ends well";
std::string s(arr, 3000);
std::cout << s << std::endl;
return(0);
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+20
#include <iostream>
#include <string>
int main(void)
{
char arr[] = "All's well that ends well";
std::string s(arr, 3000);
std::cout << s << std::endl;
return(0);
}
Первое что пришло на ум, когда смотрел конструкторы string.
Собирал: g++-4.5 -Wall -Wextra -pedantic-errors
ideone.com и liveworkspace.org фильтруют.
bormand 17.08.2012 15:24 # 0
sayidandrtfm 17.08.2012 15:47 # 0
bormand 17.08.2012 15:49 # 0
sayidandrtfm 17.08.2012 16:02 # 0
sayidandrtfm 17.08.2012 16:11 # 0
bormand 17.08.2012 16:52 # 0
Начинается с "All's well that ends well", затем следует нолик, и затем мусор до 3000байт и 0x0A, который в endl.
Ничего некорректного не вижу.
sayidandrtfm 17.08.2012 17:03 # +1
http://pastebin.com/6UFmUdFs
В итого: конструктор не проверяющий соответствие длины массива на 'не более чем'.
Вот интересно, http://govnokod.ru/11604#comment151222 этот небось проверяет?
bormand 17.08.2012 17:14 # 0
Ну у него сигнатура как бы string(const char * s, size_t n), потому и нет никакой возможности проверить.
ЕМНИП шаблонные конструкторы запилить нельзя, поэтому подобную проверку никак не реализовать.
defecate-plusplus 17.08.2012 17:28 # +5
ты про это?
http://ideone.com/4BHxK
bormand 17.08.2012 17:35 # 0
defecate-plusplus 17.08.2012 17:37 # 0
большинство строковых констант и так заканчиваются нулем, а те, что не заканчиваются - пользователю самому виднее, сколько конкретно взять из массива (как было виднее ОП)
bormand 17.08.2012 17:40 # 0
bormand 17.08.2012 17:21 # +12
На наш завод привезли японский деревообрабатывающий станок. Приходит рабочий, берёт брусок вставляет его в станок, вжик, из станка выходит готовое изделие.
-Нихрена себе (сказал рабочий)
-А хули ты думал (сказал станок)
Берёт бревнышко потолще, вжиик, опять выходит изделие.
- Ну нихрена себе (сказал рабочий)
-А хули ты думал (сказал станок)
Берёт рельсу, крык....
-Ну нихрена себе (сказал станок)
-А хули ты думал (сказал рабочий)
3.14159265 17.08.2012 17:32 # +12
guest 18.08.2012 18:04 # 0
HaskellGovno 17.08.2012 16:17 # 0
Можно, только нужно заставить борманда сдать анализы.
sayidandrtfm 17.08.2012 16:22 # +3
На голодный желудок и майонезную баночку не возвращают.
HaskellGovno 17.08.2012 15:27 # +1
bormand 17.08.2012 15:34 # −3
HaskellGovno 17.08.2012 16:14 # 0
http://ideone.com/a6fC0
sayidandrtfm 17.08.2012 16:18 # 0
Не нечитал.
HaskellGovno 17.08.2012 16:41 # +1
sayidandrtfm 17.08.2012 16:46 # +2
vistefan 17.08.2012 19:31 # +7
Xom94ok 17.08.2012 18:31 # +13
Вам дают заряженный пистолет. У вас есть нога. Что же вам первое придет на ум?
3.14159265 17.08.2012 18:37 # +3
Лол, а голова мне на что?
vistefan 17.08.2012 19:30 # +3
root@root:/usr/music/lyrics/aquarium/concerts/1980 - Аквариум и Майк# █
3.14159265 17.08.2012 19:35 # +4
bormand 17.08.2012 19:47 # +4
ZX_Spectrum 19.08.2012 20:56 # +3
bormand 19.08.2012 21:13 # +3
Abbath 17.08.2012 20:34 # 0
sayidandrtfm 17.08.2012 20:18 # +1
У меня 2 ноги, слава Богу.
Пистолет, тем более заряженный, в свои руки, по собственной воле не возьму, кто его знает
что на нём висит.
eth0 17.08.2012 21:00 # +1
HaskellGovno 17.08.2012 21:52 # 0
Вам дают заряженный пистолет. У вас есть чужая нога. Что же вам первое придет на ум?
Xom94ok 17.08.2012 22:03 # +15
HaskellGovno 17.08.2012 22:12 # +4
Steve_Brown 20.08.2012 16:01 # 0