Да, я бы сказал, что это действительно так плохо.
Он прерывает первую нормальную форму.
Вторая критика заключается в том, что ввод исходных результатов непосредственно в базу данных, без какой-либо проверки или привязки вообще, дает вам возможность открывать атаки SQL-инъекций.
То, что вы называете лень и отсутствие знаний SQL, - это материал, из которого сделаны неофиты. Я рекомендую потратить время, чтобы сделать это правильно, и рассмотреть его как возможность узнать.
Или оставьте это как есть и узнайте болезненный урок атаки SQL-инъекции.
Я полагаю, вы ищете:
способ управления распределением памяти в стеке, по крайней мере, в контексте не перезаписи уже использованной памяти
blockquote >Конечно, об этом позаботится ОС! Системные вызовы низкого уровня гарантируют, что вновь созданная автоматическая переменная не будет записана в уже используемый блок памяти.
В вашем примере:
for (int i = 0; i < 5; i++) { int nums[5]; ... }
это не случай, так как
nums
выйдет из области действия , когда i-я итерация цикл for завершается.В результате, блок памяти
nums
, сохраненный во время первой итерации, будет помечен как свободный, когда начинается вторая итерация, что означает, что когдаnums
первой итерации будет выделено в стек, он не будет знать о существованииnums
первой итерации, так как он уже вышел за рамки - он не существует!