Про бесконечный l oop и вылет памяти - PullRequest
0 голосов
/ 30 мая 2020

Когда я делал программу с помощью Visual Studio, я несколько раз случайно поймал бесконечное l oop. Мне было неловко видеть, как одно и то же предложение печатается очень быстро, поэтому я просто закрыл консоль. Однако, когда я его искал, было сказано, что если я получаю бесконечное l oop, мне нужно выключить процессор с помощью ctrl + c.

Что меня беспокоит, так это память cra sh. В классе микропроцессоров я узнал, что если я не выйду из программы бесконечного l oop должным образом, она будет треснуть sh в памяти. Это правда, что бесконечный l oop продолжает работать, даже если я закрою консоль? Если да, есть ли обходной путь?

Ответы [ 2 ]

0 голосов
/ 30 мая 2020

Когда вы выходите из консольного приложения, ваш бесконечный l oop также завершается, потому что бесконечный l oop является частью вашего окна консоли. Если вас беспокоит, что ваш бесконечный l oop не завершается, вы можете просто проверить в диспетчере задач (есть ли какие-либо ненужные процессы, работающие в фоновом режиме или нет).

** Но это так. невозможно, что (ваш бесконечный l oop будет запущен) после завершения окна консоли **

Это не повредит вашей памяти.

0 голосов
/ 30 мая 2020

Как только вы завершите программу, бесконечное l oop просто остановится. Если он продолжит работать какое-то время, он в конечном итоге скомпрометирует sh.

Даже если ваш l oop бесконечен, он будет продолжать работать, и как только ему не хватит памяти, он будет трещать sh и автоматически прекращается. Вы можете так же легко завершить al oop, используя ctrl + C.

Ваш P C, скорее всего, будет в порядке

Если вы беспокоитесь, что что-то случится с вашим компьютером / ноутбуком, в большинстве случаев ответ будет НЕТ . Ваша программа будет работать какое-то время (время будет зависеть от того, какой тип l oop вы используете, и процесс, происходящий внутри l oop), а затем вы, вероятно, увидите замедление работы вашего компьютера и его отсутствие ответа. После использования нескольких гигабайт вашей памяти, процесс в конечном итоге исчерпает доступное пространство в памяти, взломает sh и завершит . Как только процесс завершится, система потребует обратно всю память, занятую процессом, и все вернется в нормальное состояние, как было изначально.

...