Утечка памяти (вид) со статическим станд.:: вектор

Используйте http://www.ruby-doc.org/stdlib-1.9.3/libdoc/ipaddr/rdoc/IPAddr.html , он выполняет проверку для вас. Просто спасите исключение с помощью false, и вы знаете, что оно недействительно.

1.9.3p194 :002 > IPAddr.new('1.2.3.4')
 => # 
1.9.3p194 :003 > IPAddr.new('1.2.3.a')
ArgumentError: invalid address
  from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/ipaddr.rb:496:in `rescue in initialize'
  from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/ipaddr.rb:493:in `initialize'
  from (irb):3:in `new'
  from (irb):3
  from /usr/local/rvm/rubies/ruby-1.9.3-p194/bin/irb:16:in `
'

6
задан Linger 4 September 2012 в 17:27
поделиться

3 ответа

Вы можете заменить вектор пустым - это освободит память.

См. Также Q: Уменьшение вектора

16
ответ дан 8 December 2019 в 04:55
поделиться

Чтобы добавить к тому, что Джеймс написал. Он хочет сделать следующее:

std::vector<T>().swap(v);

где 'v' - вектор, память которого вы хотите освободить.

8
ответ дан 8 December 2019 в 04:55
поделиться

Это просто причуда Visual Studio. Деструктор вектора освобождает память, но модуль проверки памяти не всегда ее обнаруживает, поэтому жалуется. Это немного неприятно, но беспокоиться не о чем.

0
ответ дан 8 December 2019 в 04:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: