問題タブ [null-terminated]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
string - C スタイルの文字列を使用した C 関数の呼び出し
私はmktemp
Dを呼び出すのに苦労しています:
しかし、私はそれを使用する方法を理解できないので、DMD は不平を言います:
変更可能なゼロ終了 C スタイル文字列を作成するにはどうすればよいですか?
const
文字列リテラル (またはimmutable
) は、ゼロ (null) で終わる文字列に暗黙的に変換できることをどこかで読んだことがあると思います。
c++ - istream::getline() の \0 文字
\0
使用時にファイルに文字が含まれているとどうなりますistream::getline()
か? 省略されますか、それとも文字列バッファーのフィールドに割り当てられますか?
c++ - 異なる PC で '\0' を印刷すると結果が異なる?
次のコードの場合、私の PC では、char\0
は常にスペースになります (を使用して印刷する場合cout
)。ただし、友人の PC では、 char の結果\0
は常にchar になりa
ます。コードとスクリーンショットは次のとおりです。
左:私のPC上。 右: 友人の PC で。
何が起きてる?PC によって結果が異なるのはなぜですか?
PS :
同じ実行可能ファイルを共有しても、結果は異なり
exe
ます (つまり、自分の PC でコンパイルし、両方の PC で実行します)。両方とも、同じプロジェクト キャラクター セットでビジュアル スタジオ 2010 を使用しています。
ここでバッファ オーバーランが発生する可能性がありますが、友人が常にcharを取得する間、常にa を取得するという事実に注意してください。
space
a
私たち二人がそうするなら、それは同じ機能を共有します
cout<<ends
。
c - AS の incbin ディレクティブを介して含まれる文字列の NULL ターミネータ
実行可能ファイルに含めるファイルに大きな文字列リソースがいくつかあります。以下を使用して、それらを実行可能ファイルに含めます。を使用すると、特別な処理を行わずに*.S
GCC を呼び出してオブジェクト ファイルを生成できます。as
文字列を含めた後に を追加して.byte 0
、文字列が確実にNULL
終了するようにします。これによりca_conf
、 Cconst char*
または{ca_conf,ca_conf_size}
C++ 文字列として使用できます。
アセンブラまたはリンカは、NULL
ターミネータが終端文字列から分離されるように再配置しますか? それとも、アセンブラとリンカは常にそれらを一緒に保ちますか?
c - C 文字列変数全体を表示 (\0 終端を無視)
例では、1,000 語以上を示しています。
-変数全体の内容を印刷するにはどうすればよいですかhello
(すべての文字ではなく、 -terminationprintf("%s",..)
の前の部分のみを尊重します)。\0
STR_LEN
c - 特大のバッファ内の C 文字列 null ターミネータ
ノート:
これは純粋な C に関する質問です。C++ 関数などはありません。
質問:
malloc
100 の余地があるバッファがあるとしますchars
。次に、これらのスロットのうち 5 つだけを実際の で埋めchars
ます。次のように、バッファー内の残りのすべてのスロットを null にすることをお勧めします。
これは厳密に必要ですか、それとも単純にbuffer[5] = '\0'
自分でループを設定して保存できますか?
環境:
問題のコードは 4096 のバッファ サイズで非常に頻繁に呼び出され、そこにコピーされる文字列の 99% ははるかに短いため、上記のループはほぼ毎回、少なくとも 2,000 回の繰り返しで実行されます。
弦のサイズを事前に知ることはできません。また、再割り当ては非常にコストがかかるため、最初は大きなバッファー サイズを選択します。デスクトップ クラスのハードウェアを対象としているため、メモリはまったく制限されません。
string - null で終わる文字列を含む文字列で null を取得するにはどうすればよいですか?
NULL が含まれる可能性のあるバイナリ ファイルを読み込みたいとします。NULL で終了した言語でどのようにしますか? それをバイト配列にマップするだけだと思いますか?