В свете комментариев здесь должно быть очевидно, что: char * s = "hello"; Это плохая идея, и ее следует использовать в очень узком пространстве.
Это может быть хорошей возможностью указать, что «const correctness» - это «хорошая вещь». Когда бы и где бы вы ни находились, используйте ключевое слово «const» для защиты своего кода, от «расслабленных» абонентов или программистов, которые обычно наиболее «расслаблены», когда указатели вступают в игру.
Достаточно мелодрамы, здесь что можно достичь, когда украшающие указатели с «const». (Примечание: каждый должен читать декларации указателей справа налево.) Вот три разных способа защитить себя при игре с указателями:
const DBJ* p means "p points to a DBJ that is const"
- то есть объект DBJ не может быть изменено с помощью p.
DBJ* const p means "p is a const pointer to a DBJ"
- то есть вы можете изменить объект DBJ через p, но вы не можете изменить сам указатель p.
const DBJ* const p means "p is a const pointer to a const DBJ"
- то есть вы не можете изменить сам указатель p, и вы не можете изменить объект DBJ через p.
Ошибки, связанные с попытками мутаций const-ant, попадают во время компиляции. [Const].
(Предполагается, что вы используете компилятор C ++, конечно?)
- DBJ
К сожалению, это, вероятно, никогда не поможет никому другому, у кого такая же проблема, но я смог получить все, просто изменив порт на 465.
Уволив сообщение, чтобы сказать, что у меня была такая же проблема, но установил порт на 465, не устанавливая SMTPSecure в 'ssl' в примере, установленном его TLS по умолчанию