CStringオブジェクトが最大サイズを取得する場合、CStringのサイズを増やす方法。またはCStringよりも最大のデータを保持できる関数を教えてくださいCStringサイズクラス
0
A
答えて
1
CStringは文字列バッファのヒープ割り当てを使用するため、文字列長の実際の制限は条件の数によって異なり、数百MBです。
一般に、文字列がバッファを拡張する必要があるたびに、前の文字列より新しいバッファが割り当てられます。バッファの新しいサイズを決定する方法があります。システム内の使用可能なメモリの実際の量に応じて、この再割り当ては失敗するか、成功する可能性があります。失敗した場合、できることはほとんどありません。通常、プログラムを再起動することをお勧めします。
COMポートを使用して作業する場合は、可変サイズの配列として非常に便利なMFC :: CArrayを使用できます。また、std :: vectorを同じものに使うこともできます。
1
CStringでは、文字列の実際のサイズと割り当てられたバッファは符号付き整数(CStringDataをチェックアウト)によって保持されます。文字列バッファ自体は動的に割り当てられます。これは、理論上の制限が2^31文字であることを意味します。実際には、32ビット環境ではメモリの脆弱性のためにはるかに少なくなるでしょう。また、Unicode CStringを使用している場合、各文字は2バイトです。つまり、CStringバッファにはテキストが少なくなります。 64ビット環境では、2^31文字を取得できる可能性があります。
あなたは本当に長い文字列で作業しようとしていますか?あなたがCStringの長さ制限を打つ前に、おそらく多くのことがあります。
関連する問題
- 1. サイズクラス
- 2. モーダルビューのサイズクラス
- 3. Xcode 7〜8:サイズクラス
- 4. AfxBeginThread()+ Cstring = garbage content
- 5. リンクリストcstring挿入ソート
- 6. CString。フォーマットの問題
- 7. CStringのエスケープ文字
- 8. サイズクラスのXamarin画像アセット
- 9. ローカリゼーションのためのサイズクラス
- 10. ソートマップ<CString、CString>が可能ですか?
- 11. C++ LibCurl - CStringコードをCStringに変換する
- 12. `CString`とは何ですか?
- 13. CstringのBool Palidrome機能?
- 14. ポインタとcstringの長さ
- 15. MFCのCStringへのLPBYTEデータ
- 16. cstringを空にする
- 17. C++とRust-CStringパニックのインターフェイス
- 18. 新しいペアをstd :: map <CString、CString>に挿入します。
- 19. コードのサイズクラスを変更する(Swift)
- 20. Xcode 8ベータ版の制約とサイズクラス
- 21. 異なるサイズクラスの異なる制約
- 22. CString - > Memory Leakの配列ですか?
- 23. CStringをメッセージボックスに出力する
- 24. cstringをcamelcaseに変換する
- 25. パスカル文字列からcstringへ
- 26. のgetlineのCString割り当て
- 27. _bstr_tをCStringに変換する方法
- 28. void *をCStringに変換する方法
- 29. タグ間のCStringを抽出する
- 30. 静的メソッドで使用されるCString
実際に発生する問題は何ですか? – sharptooth
だから、CStringの最大サイズは –
です。また、CStringのサイズを増やすことができるDynamic CStringを作成する方法もあります。 –