Когда я пишу код в приложении iOS:
string s; s.resize(-1);
это приведет к падению приложения.
Есть ли способ справиться с этим сбоем? Я пытаюсь использовать KSCrash, но безрезультатно.
string.resize()
принимает неподписанный целочисленное значение. Компиляторы часто преобразуют введенное вами -1 (что является целочисленным значением со знаком) в целое число без знака, имеющее такую же битовую комбинацию (обычно это максимально возможное целое число без знака).
В соответствии с cplusplus.com, изменить размер бросков length_error
когда поставляемая длина больше чем max_size
. Тем не менее, так как max_size
не имеет никакого отношения к тому, сколько памяти на самом деле доступный для использования вашей программой, его перехват не исключает вероятности сбоя приложения, поскольку у системы недостаточно памяти для выполнения этого запроса, что, скорее всего, и произошло.
С этим из пути …
Что вы пытаетесь достичь здесь? Было бы гораздо проще добавить if
проверьте вместо этого.
Других решений пока нет …