Android-диалог + утечка канарейка

1.

Поскольку char массивы обрабатываются по-разному с другими массивами, когда вы передаете их на cout - оператор << перегружен для const char*. Это для совместимости с C, так что массивы char с нулевым завершением рассматриваются как строки.

См. этот вопрос .

2.

Это связано с интегральным продвижением . Когда вы вызываете двоичный файл + с char (со значением «a») и int (со значением 1), компилятор продвигает ваш char к signed int или unsigned int. Какой из них специфичен для реализации - это зависит от того, подписан ли char по умолчанию или без знака, и который int может принимать весь диапазон char. Таким образом, оператор + вызывается со значениями «97» и «1», и он возвращает значение «98». Чтобы напечатать это как char, вам нужно сначала набросить его:

cout << "Print char array[0]+1: " << static_cast(array[0]+1) << endl;

См. этот вопрос .

-1
задан wingear 5 March 2019 в 11:05
поделиться

1 ответ

Эта утечка памяти была связана с отображением тоста с контекстом текущей активности. Когда я вставлял контекст приложения в класс, который отображал тосты, утечка была исправлена ​​

0
ответ дан wingear 5 March 2019 в 11:05
поделиться
Другие вопросы по тегам:

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