- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
int** delete_row(int** arr, int &row_count, int n)
{
delete arr[n-1];
for (int i = n-1; i < row_count-1; i++)
{
arr[i] = arr[i+1];
}
arr[row_count-1] = NULL;
delete arr[row_count-1];
row_count--;
return arr;
}
guest8 09.10.2018 16:48 # −999
OBEH 09.10.2018 16:58 # −1
roman-kashitsyn 09.10.2018 16:58 # 0
dumiv 09.10.2018 17:03 # 0
guest8 09.10.2018 17:06 # −999
bormand 09.10.2018 17:15 # 0
Факт. Пока продерешься через все эти операторы * и -> от смартпоинтеров...
guest8 09.10.2018 17:19 # −999
roman-kashitsyn 09.10.2018 17:23 # 0
нет
> STL затрудняет отладку
потому что с STL ты сразу корректные программы писать начинаешь, и отлаживать становится нечего?
Закопайте отладчик, пишите юнит-тесты. Я плюсовый отладчик запускаю раз в полгода чтобы в coredump поковыряться.
guest8 09.10.2018 17:28 # −999
roman-kashitsyn 09.10.2018 17:35 # 0
Я слишко часто об этом забываю, поэтому после каждого зелёного теста приходится стэшить изменения в коде, убеждаться, что тест падает, а потом накатывать изменения обратно.
guest8 09.10.2018 17:42 # −999
roman-kashitsyn 09.10.2018 17:42 # 0
Я уже лет 5 пишу программы, которые работают на другом конце света, и которые крэшатся, если минуту на хартбиты не отвечают. Какой мне толк от отладчика?
Отладчик я только в Emacs используют, чтобы понять, какой мудак мне в глобальную переменную срёт (я застукал тебя, сраный убогий haskell-mode).
guest8 09.10.2018 17:43 # −999
roman-kashitsyn 09.10.2018 17:49 # 0
guest8 09.10.2018 17:58 # −999
CHayT 09.10.2018 18:44 # 0
Дебаггер не нужен, трассировщик изредка бывает полезен, если знаешь что искать, но практика показывает, что быстрее разобраться в коде, чем в портянке трейсов.
roman-kashitsyn 27.10.2018 20:16 # 0
Ты кстати как, от Erlang-а не плюёшься?
CHayT 27.10.2018 20:38 # 0
Уже не особо. Это практичный нишевой язык с ограниченным, но продуманным набором ортогональных фич. Это не kitchen sink модных баззвордов (в отличие от С++) и не kitchen sink диссертаций в отличие от Haskell.
+там один из лучших рантаймов для работы с IO и сетью, что я встречал. Недавно сам был нимало удивлён как быстро схаченная на коленке P2P приблуда нам раскатывает по кластеру терабайты данных. Буквально на порядок быстрее transmission и обмазанного по уши boost::asio libtorrent.
0BEH 27.10.2018 20:39 # 0
CHayT 27.10.2018 20:45 # 0
0BEH 27.10.2018 22:12 # 0
roman-kashitsyn 28.10.2018 00:25 # 0
guest8 28.10.2018 00:31 # −999
roman-kashitsyn 28.10.2018 00:42 # −1
у нас только на вступительном.
пишите — императив, пишете — множ. число настоящего времени.
Хоть на что-то ты годишься — грамматические ошибки находишь.
guest8 28.10.2018 02:10 # −999
guest8 28.10.2018 00:44 # −999
guest8 28.10.2018 01:03 # −999
guest8 28.10.2018 01:07 # −999
guest8 28.10.2018 01:10 # −999
guest8 28.10.2018 01:15 # −999
guest8 28.10.2018 01:17 # −999
guest8 28.10.2018 02:04 # −999
guest8 28.10.2018 11:26 # −999
3oJIoTou_xyu 28.10.2018 11:29 # 0
guest8 28.10.2018 14:15 # −999
guest8 28.10.2018 15:21 # −999
roman-kashitsyn 28.10.2018 01:16 # +1
guest8 28.10.2018 01:21 # −999
3oJIoTou_xyu 28.10.2018 11:41 # 0
adrnin 28.10.2018 12:13 # 0
Да, я помню, весело ьогда было...
guest8 28.10.2018 13:02 # −999
noxyuHxo 28.10.2018 14:16 # 0
adrnin 28.10.2018 04:21 # 0
guest8 29.10.2018 01:13 # −999
guest8 28.10.2018 02:11 # −999
guest8 28.10.2018 15:22 # −999
roman-kashitsyn 28.10.2018 15:23 # 0
guest8 28.10.2018 16:01 # −999
guest8 29.10.2018 00:24 # −999
guest8 29.10.2018 00:27 # −999
guest8 29.10.2018 00:34 # −999
guest8 29.10.2018 00:35 # −999
guest8 29.10.2018 00:37 # −999
guest8 29.10.2018 00:40 # −999
guest8 29.10.2018 00:52 # −999
guest8 29.10.2018 00:53 # −999
guest8 29.10.2018 00:56 # −999
adrnin 29.10.2018 04:14 # 0
adrnin 29.10.2018 04:13 # 0
guest8 29.10.2018 16:45 # −999
adrnin 29.10.2018 16:53 # 0
http://cdn.mcstatic.com/contents/videos_screenshots/1162000/1162955/preview.jpg
guest8 29.10.2018 17:14 # −999
guest8 28.10.2018 19:35 # −999
guest8 29.10.2018 16:45 # −999
CHayT 28.10.2018 00:48 # 0
У него есть некая внутренняя веб-мордочка с минимумом JS.
Desktop 11.10.2018 11:34 # 0
roman-kashitsyn 11.10.2018 16:51 # 0
bormand 11.10.2018 18:43 # 0
tsar
Desktop 11.10.2018 19:00 # 0
guest8 11.10.2018 19:20 # −999
roman-kashitsyn 27.10.2018 20:15 # 0
Обычные юнит-тесты пишешь. Есть у тебя, к примеру, класс "Service", который запускает отдельный поток, и у которого есть Stop() и Start().
TSAN будет проверять, что ты там рейс-кондишенов не наплодил.
Специальных тестов для него мы не пишем.
guest8 11.10.2018 19:19 # −999
Psionic 09.10.2018 17:54 # 0
guest8 09.10.2018 17:56 # −999
dumiv 09.10.2018 17:02 # 0
Steve_Brown 09.10.2018 17:32 # 0
guest8 09.10.2018 17:37 # −999
roman-kashitsyn 09.10.2018 17:33 # +1
delete[] arr[i];
а не
delete arr[i];
Вместо цикла можно впендюрить memmove, ну и, конечно, самый разумный способ реализовать желаемое — использовать вектор векторов
guest8 09.10.2018 17:41 # −999
roman-kashitsyn 09.10.2018 17:44 # 0
guest8 09.10.2018 17:54 # −999
dumiv 09.10.2018 18:15 # 0
Теперь я не понимаю почему вообще работает мой код. Я котел освободить память на которую указывает a[k-1], а потом сделать так, чтобы a[k-1] указывал на ту же строку, что и a[k] .
bormand 09.10.2018 18:17 # 0
Бывший питонист или жсник что ли?
OBEH 09.10.2018 18:19 # 0
roman-kashitsyn 09.10.2018 18:20 # +1
Ну указатели ты вроде правильно перезаписал, просто память криво освободил, и аллокатору теперь может крышу снести в самом неожиданном месте.
bormand 09.10.2018 18:21 # +1
Да просто утечка, удаление null'а даже не UB.
roman-kashitsyn 09.10.2018 18:34 # +2
при чём тут удаление null'а? он результат new[] передаёт в delete, а не в delete[].
From the standard (5.3.5/2) :
In the first alternative (delete object), the value of the operand of delete shall be a pointer to a non-array object or a pointer to a sub-object (1.8) representing a base class of such an object (clause 10). If not, the behavior is undefined.
In the second alternative (delete array), the value of the operand of delete shall be the pointer value which resulted from a previous array new-expression. If not, the behavior is undefined.
-- https://stackoverflow.com/questions/4255598/delete-vs-delete
bormand 09.10.2018 18:35 # 0
guest8 09.10.2018 18:45 # −999
guest8 09.10.2018 18:46 # −999
guest8 09.10.2018 18:48 # −999
guest8 09.10.2018 18:49 # −999
BagorCtretora 10.10.2018 11:52 # 0
Какое же всё таки унылое гуано, этот Ваш c++. То ли дело php Pascal.
OBEH 09.10.2018 18:21 # 0
guest8 09.10.2018 18:23 # −999
guest8 09.10.2018 18:25 # −999
BagorCtretora 10.10.2018 11:59 # +1
guest8 10.10.2018 12:21 # −999
guest8 10.10.2018 13:32 # −999
guest8 10.10.2018 16:00 # −999
OBEH 10.10.2018 16:18 # 0
guest8 10.10.2018 16:59 # −999
dumiv 09.10.2018 18:29 # 0
Получается, что я удалил указатель, а потом заставил ссылаться на другую область памяти. Как такое возможно? Я же его уже удалил(delete arr[n-1]).
bormand 09.10.2018 18:31 # +1
dumiv 09.10.2018 18:34 # +1
bormand 09.10.2018 18:36 # +1
А delete[] каждому элементу массива позовёт деструктор.
Elvenfighter 10.10.2018 00:44 # 0
Причем Clang даже ворнинг выписывает сразу:
guest8 10.10.2018 01:20 # −999
guest8 10.10.2018 01:25 # −999
guest8 10.10.2018 09:20 # −999
chtulhu 10.10.2018 12:02 # 0
еще есть boost::matrix
roman-kashitsyn 11.10.2018 16:55 # +1
Psionic 09.10.2018 17:55 # 0
roman-kashitsyn 09.10.2018 17:56 # +3
Psionic 09.10.2018 18:09 # 0
guest8 09.10.2018 18:13 # −999
Psionic 09.10.2018 18:25 # +1
guest8 09.10.2018 18:33 # −999
guest8 09.10.2018 18:37 # −999
bormand 09.10.2018 18:39 # 0
Чтобы поняли, что программисты не просто так зарплату получают. На каком-нибудь "PHP" это сделать не выйдет.
guest8 09.10.2018 19:42 # −999
Psionic 10.10.2018 09:15 # 0
Desktop 10.10.2018 11:40 # 0
guest8 10.10.2018 11:44 # −999
guest8 10.10.2018 13:57 # −999
guest8 10.10.2018 16:00 # −999
guest8 09.10.2018 18:01 # −999
Psionic 09.10.2018 18:07 # −1
guest8 09.10.2018 18:09 # −999
guest8 10.10.2018 13:58 # −999
guest8 10.10.2018 15:58 # −999
guest8 10.10.2018 18:05 # −999
OBEH 10.10.2018 18:08 # −1
guest8 10.10.2018 18:11 # −999
guest8 10.10.2018 18:16 # −999
guest8 10.10.2018 18:27 # −999
guest8 10.10.2018 18:29 # −999
guest8 10.10.2018 22:38 # −999
guest8 11.10.2018 04:27 # −999
bormand 11.10.2018 07:01 # 0
Вай нот? Хотя можно и тупо скопировать каталог.
guest8 11.10.2018 07:14 # −999
Desktop 11.10.2018 10:14 # +2
guest8 11.10.2018 10:17 # −999
guest8 11.10.2018 19:24 # −999
guest8 11.10.2018 19:35 # −999
guest8 11.10.2018 19:39 # −999
guest8 11.10.2018 19:45 # −999
guest8 11.10.2018 19:46 # −999
guest8 28.10.2018 02:13 # −999
0BEH 28.10.2018 02:22 # 0
guest8 11.10.2018 19:32 # −999
guest8 11.10.2018 19:22 # −999
guest8 11.10.2018 19:36 # −999
Elvenfighter 09.10.2018 17:53 # 0
> delete arr[row_count-1];
Интересно, догадается ли компилятор оптимизировать? (выкинуть delete)
guest8 29.10.2018 01:21 # −999