最近の回答を読んだり試したりすると、Arduinoの String
クラスが c_str()
メソッドをサポートしていることに驚きました。 C ++ std :: string
クラス。予想どおり、文字列の内容へのポインタは、nullで終了する char
配列(つまり、Cスタイルの文字列)として取得されているように見えます。
ただし、(私ができる限り)参照)その方法は、Arduinoの公式ドキュメントには記載されていません。さらに、 String
を使用して見たすべてのサンプルコードでは、別のアプローチが使用されているようです。セカンダリ char
バッファが設定され、 String :: toCharArray()
を使用して文字列の内容がそこにコピーされます。これには明らかに2倍のメモリとO(n)コピー操作が必要です。
c_str()
が推奨されるアプローチのようです。 toCharArray()
がより一般的に使用される理由はありますか?