問題タブ [strcpy]

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.

0 投票する
2 に答える
1620 参照

c - C プログラミングの問題で、STRCPY の使用後に無関係な変数が上書きされる

問題は、STRCPY の実行が終了した後に変数 nodeType が変更されていることです。nodeType は、STRCPY 呼び出しで使用されている他の変数に関連する変数ではありません。ただし、同じ構造体にあります。nodeType は、int 値が 3 の列挙型です。

以下は、おそらく最も関連性の高い次の情報です。列挙型と構造体からほとんどの変数を削除したため、それらは表示されません。それらは問題に関連していないと思います。それが違いを生む場合、私はVS2010でコーディングしています。これは btree を作成する課題の一部ですが、私が持っている質問は btree とは関係ありません。

... insertElement 関数の一部

..私が呼び出した関数は、要素を挿入するためのものでした。これより前に関数を数回呼び出しましたが、以下のコードのこのセクションが実行されるのはこれが初めてです。STRCPY の実行後、nodeType の値は 1280070990 になります。変数を監視するように設定しましたが、CXX0017 エラーが発生している間は、スコープ内にないことを意味しているだけだと思います。

1280070990 という番号を調べたところ、さまざまなエンジンから多くのゲーム関連の問題が発生しました。メモリアドレスの問題だと思います。

解決策は以下に提供されていました。配列境界の外側に書き込むという単純なエラーでした。私は古いコードをこのように分解し、それを見ていきました。これにより、キー配列キーの外側に書いていた問題を特定できました。

両方の変数が含まれていた構造体の全体像。

構造体の変数の順序から、nodeType がキーに続くことがわかります。C はこの同じ順序でメモリを割り当てると思います。そのため、ここでも問題を特定することができました。

0 投票する
4 に答える
678 参照

c - Cでstrcpy関数を使用する利点

または、次のように割り当てることもsできtますt=s;。代替手段を使用することの欠点は何ですか?

0 投票する
1 に答える
34048 参照

c - unsigned char配列をコピー

unsigned char 配列を別の配列にコピーする最良の方法は何でしょうか?

例えば:

上記のコードは機能しません。「パラメーター 1 を unsigned char [1000] から char * に変換できません」というエラーが表示されます。

0 投票する
2 に答える
2524 参照

c - c strcpy ファイル記述子

strcpy() 関数について質問があります。私がやろうとしているのは、ユーザーがファイル名を入力し、基本的にファイルを開き、コンテンツを取得してファイルのコピーを作成することです。

ただし、書き込み前に内容 read() がコピー ファイルに書き込まれた内容と同じかどうかを確認するために、いくつかのエラー チェックを行うことにしました。したがって、ファイル読み取りのファイルサイズを使用してコンテンツを動的配列に read() するため、バッファはデータに適したサイズです。次に、そのコピーを別の動的バッファーに作成し、strcmp() を使用して同じかどうかを確認します。同じ場合は、コピー バッファーを出力ファイルに書き込みますか?

これは特定のファイルに対しては正常に機能しますが、ビデオ ファイル (mpeg) などに問題があり、ビデオ ファイルを開くときに「ストリームの種類を特定できませんでした」というエラーが表示されます。

メモリ内にバッファの別のコピーを作成した理由は、サイズだけでなく実際のビット データを比較できるようにするためです。したがって、書き込まれるデータが読み取られるデータと同じであることがわかります。

0 投票する
4 に答える
33755 参照

c++ - C++ での strcpy の代替

Cでは、文字列のディープ コピーstrcpyを作成していましたが、C++ で使用しても「問題ありません」か、代わりに使用すべきより良い代替手段がありますか?strcpy

0 投票する
6 に答える
7315 参照

c - Valgrind の警告: 真剣に考えるべきか

fgets(character, 2, fp)背景:ストリームではなく文字列から文字を取得することを除いて、模倣する小さなルーチンがあります。newBuff はパラメータとして渡される動的に割り当てられる文字列であり、文字は として宣言されchar character[2]ます。

ルーティーン:

strcpy は、各文字が読み取られるときに情報の損失を再現します。

問題: Valgrind は、このアクティビティについて「ソースと宛先が strcpy(0x419b818, 0x419b819) で重複しています」と警告します。

この警告について心配する必要がありますか?

0 投票する
5 に答える
21855 参照

c - 「strcpy」で作成された文字列は解放する必要がありますか?

「 strcpy 」で作成された文字列は解放する必要がありますか? そして、それを解放する方法は?

編集:宛先は次のように割り当てられます:

0 投票する
1 に答える
365 参照

c - C の strcpy が二重インデックス配列で失敗するのはなぜですか?

次のコードはセグメンテーション違反のようで、その理由がわかりません。

0 投票する
7 に答える
4510 参照

c - strcpy 文字列配列

入力が20文字を超える場合、最初の20文字のみを取得するにはどうすればよいですか

0 投票する
4 に答える
834 参照

c - strncmp/strcpyがソースを破損しています

今日、私はchar * stringと親しみを持とうとしていましたが、失敗しているようです:) strcmp / strncmp / strcpy関数を呼び出すたびに、ソースが破損します...

これがスニペットです

出力:

私はただの初心者なので、それは非常に単純なものかもしれません...そうではないかもしれません。ちなみに、LinuxとnetbeansをSDKとして使用し、gccをコンパイラーとして使用しています。