Size: a a a

IT KPI C/С++ ХВ (хорошо, что не UB)

2020 February 25

c/

cat /dev/cl0ne in IT KPI C/С++ ХВ (хорошо, что не UB)
мм, спагетти из try-catch :3
источник

TS

Till Schneider in IT KPI C/С++ ХВ (хорошо, что не UB)
cat /dev/cl0ne
мм, спагетти из try-catch :3
Угу, но можно отказаться от new и сделать нормально
источник

РБ

Раздолбанный Басс in IT KPI C/С++ ХВ (хорошо, что не UB)
Till Schneider
Тебе надо каждый new обернуть в try catch и корректно освободить память, в случае ошибки
То-есть :
try{
a = new char[...];
}
catch (a){
exit(1);
}
источник

РБ

Раздолбанный Басс in IT KPI C/С++ ХВ (хорошо, что не UB)
Так например?
источник

TS

Till Schneider in IT KPI C/С++ ХВ (хорошо, что не UB)
Раздолбанный Басс
То-есть :
try{
a = new char[...];
}
catch (a){
exit(1);
}
Нет
источник

c/

cat /dev/cl0ne in IT KPI C/С++ ХВ (хорошо, что не UB)
или юзать std::nothrow
источник

РБ

Раздолбанный Басс in IT KPI C/С++ ХВ (хорошо, что не UB)
Ибо на данный момент у нас такого не было, и у лафоре я до этого тоже не дошел
источник

TS

Till Schneider in IT KPI C/С++ ХВ (хорошо, что не UB)
cat /dev/cl0ne
или юзать std::nothrow
Тогда пусть проверяет на nullptr
источник

c/

cat /dev/cl0ne in IT KPI C/С++ ХВ (хорошо, что не UB)
Till Schneider
Тогда пусть проверяет на nullptr
это подразумевалось
источник

TS

Till Schneider in IT KPI C/С++ ХВ (хорошо, что не UB)
Раздолбанный Басс
То-есть :
try{
a = new char[...];
}
catch (a){
exit(1);
}
a = new ...
try{
b = new ...
}
catch (...){
delete a;
throw;
}
источник

TS

Till Schneider in IT KPI C/С++ ХВ (хорошо, что не UB)
Раздолбанный Басс
https://pastebin.com/6v5qhSAG, вот с этого момента, уже работала без ошибок связанных с повторным вызовом деструктора
Ах да, ты еще и память освобождать не научился
источник

TS

Till Schneider in IT KPI C/С++ ХВ (хорошо, что не UB)
a = new int[42];
delete[] a;
источник

TS

Till Schneider in IT KPI C/С++ ХВ (хорошо, что не UB)
Till Schneider
a = new int[42];
delete[] a;
@izmaski если ты выделил через new []
То и удаляй через delete[]
источник

РБ

Раздолбанный Басс in IT KPI C/С++ ХВ (хорошо, что не UB)
Гуру

Это маг программирования, настоящий гений. Гуру часто бывает спокойным и скромным, даже немного странным. Он пишет прекрасный код, но плохо умеет общаться с простыми смертными.

Они знакомы со всеми современными технологиями и знают, какие из старых приемов лучше. Хороший Гуру - замечательный наставник: у него можно многому научиться.

Как быть, если вы один из них: не рассчитывайте, что все будут столь же сообразительны и думать так же, как и вы. Требуется немалое мастерство, чтобы давать простые и понятные советы.

Как работать с такими людьми: если вам повстречался Гуру, учитесь у него, впитывайте все сведения, и не только технические. Ведь чтобы зарекомендовать себя как Гуру, нужны знания, а не высокомерие.

#tips #programmer_type
источник

РБ

Раздолбанный Басс in IT KPI C/С++ ХВ (хорошо, что не UB)
Till Schneider
@izmaski если ты выделил через new []
То и удаляй через delete[]
Понял, спасибо
источник

AO

Anton Ornatskyi in IT KPI C/С++ ХВ (хорошо, что не UB)
Alex Master
поясните молодому, зачем в макросах делают
do {
   // some shit
} while (0);
Отвечает слоупок: чтобы макрос можно было пихать внутрь if без изменения синтаксиса.

if (a<b)
   SWAP(a,b);
else
источник

TS

Till Schneider in IT KPI C/С++ ХВ (хорошо, что не UB)
Anton Ornatskyi
Отвечает слоупок: чтобы макрос можно было пихать внутрь if без изменения синтаксиса.

if (a<b)
   SWAP(a,b);
else
а знаешь почему do { ... } while(false)
а не просто  { ... }
?
источник

AM

Alex Master in IT KPI C/С++ ХВ (хорошо, что не UB)
Anton Ornatskyi
Отвечает слоупок: чтобы макрос можно было пихать внутрь if без изменения синтаксиса.

if (a<b)
   SWAP(a,b);
else
Ля, действительно. Красиво
источник

AO

Anton Ornatskyi in IT KPI C/С++ ХВ (хорошо, что не UB)
https://stackoverflow.com/questions/257418/do-while-0-what-is-it-good-for
Я честно говоря и не знал то, и объяснение о том, что можно не ставить semicolon мне не очень нравится, бо можно ж и ставить
источник

AO

Anton Ornatskyi in IT KPI C/С++ ХВ (хорошо, что не UB)
Ну будет лишняя ;
имхо скомпилируется без проблем
источник