- 1
- 2
- 3
- 4
- 5
string* newstr()
{
string* str;
return memset(str=malloc(sizeof(string)), 0, str?sizeof(string):0);
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+92.9
string* newstr()
{
string* str;
return memset(str=malloc(sizeof(string)), 0, str?sizeof(string):0);
}
GovnocoderJr 23.01.2010 05:55 # +1
string* append(string* dest, string const* src)
{
src->size?
memcpy((char*)(dest->str=realloc(dest->str,dest->size+src->size+1))+dest->size,src->str,dest->str?src->size+1:0),
dest->size+=(dest->str?src->size:-dest->size):0;
return dest;
}
GovnocoderJr 23.01.2010 06:25 # 0
string* append(string* dest, string const* src)
{
char* realloc_ret;
src->size?
realloc_ret=realloc(dest->str,dest->size+src->size+1),
memcpy(realloc_ret+dest->size,src->str,realloc_ret?src->size+1:(free(dest->str),0)),
dest->str=realloc_ret,
dest->size+=(realloc_ret?src->size:-dest->size):0;
return dest;
}
guest 23.01.2010 08:58 # 0
guest 23.01.2010 13:16 # 0
Pencioner 23.01.2010 19:22 # 0
int i=5; myfunc(a,++a);
не гарантируется что это будет аналогично myfunc(5,6) - компилятор может как бы сначала вычислить второй, и вызовется myfunc(6,6).
Именно это называется кодом с побочными эффектами. Он зависит от компилятора, поэтому стал непереносимым.
shapigor 24.01.2010 10:54 # 0
Побочный эффект - любое изменение объекта непрописанное в контракте (возможно и неявном) метода.
А этот код зависит от компилятора, только потому, что спецификация/стандарт С++ о таких случаях молчит
guest 24.01.2010 11:05 # +3
на чистом инглише написано undefined behavior
guest 24.01.2010 12:22 # 0
shapigor 24.01.2010 14:16 # 0
stereojazz 25.01.2010 10:33 # 0
nolka4 25.01.2010 11:07 # −2.2
nil 25.01.2010 14:56 # 0
nolka4 26.01.2010 06:23 # −1.2
guest 26.01.2010 08:45 # −1
guest 23.01.2010 13:24 # 0
А string здесь что? Указатель на char?
Pencioner 23.01.2010 19:25 # 0
for (i =0; i < sizeof(strptr); i++)
:) так что нечему удивляться. такое сообразил выпускник Киевского Национального Университета факультета кибернетика... к чему образование катится...
Pencioner 23.01.2010 19:27 # 0
guest 23.01.2010 23:21 # 0
guest 23.01.2010 23:24 # 0
guest 24.01.2010 06:49 # 0
guest 24.01.2010 15:11 # 0
guest 25.01.2010 12:31 # −3.2
guest 25.01.2010 20:38 # 0