問題タブ [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.
c - C プログラミングの問題で、STRCPY の使用後に無関係な変数が上書きされる
問題は、STRCPY の実行が終了した後に変数 nodeType が変更されていることです。nodeType は、STRCPY 呼び出しで使用されている他の変数に関連する変数ではありません。ただし、同じ構造体にあります。nodeType は、int 値が 3 の列挙型です。
以下は、おそらく最も関連性の高い次の情報です。列挙型と構造体からほとんどの変数を削除したため、それらは表示されません。それらは問題に関連していないと思います。それが違いを生む場合、私はVS2010でコーディングしています。これは btree を作成する課題の一部ですが、私が持っている質問は btree とは関係ありません。
... insertElement 関数の一部
..私が呼び出した関数は、要素を挿入するためのものでした。これより前に関数を数回呼び出しましたが、以下のコードのこのセクションが実行されるのはこれが初めてです。STRCPY の実行後、nodeType の値は 1280070990 になります。変数を監視するように設定しましたが、CXX0017 エラーが発生している間は、スコープ内にないことを意味しているだけだと思います。
1280070990 という番号を調べたところ、さまざまなエンジンから多くのゲーム関連の問題が発生しました。メモリアドレスの問題だと思います。
解決策は以下に提供されていました。配列境界の外側に書き込むという単純なエラーでした。私は古いコードをこのように分解し、それを見ていきました。これにより、キー配列キーの外側に書いていた問題を特定できました。
両方の変数が含まれていた構造体の全体像。
構造体の変数の順序から、nodeType がキーに続くことがわかります。C はこの同じ順序でメモリを割り当てると思います。そのため、ここでも問題を特定することができました。
c - Cでstrcpy関数を使用する利点
または、次のように割り当てることもs
できt
ますt=s;
。代替手段を使用することの欠点は何ですか?
c - unsigned char配列をコピー
unsigned char 配列を別の配列にコピーする最良の方法は何でしょうか?
例えば:
上記のコードは機能しません。「パラメーター 1 を unsigned char [1000] から char * に変換できません」というエラーが表示されます。
c - c strcpy ファイル記述子
strcpy() 関数について質問があります。私がやろうとしているのは、ユーザーがファイル名を入力し、基本的にファイルを開き、コンテンツを取得してファイルのコピーを作成することです。
ただし、書き込み前に内容 read() がコピー ファイルに書き込まれた内容と同じかどうかを確認するために、いくつかのエラー チェックを行うことにしました。したがって、ファイル読み取りのファイルサイズを使用してコンテンツを動的配列に read() するため、バッファはデータに適したサイズです。次に、そのコピーを別の動的バッファーに作成し、strcmp() を使用して同じかどうかを確認します。同じ場合は、コピー バッファーを出力ファイルに書き込みますか?
これは特定のファイルに対しては正常に機能しますが、ビデオ ファイル (mpeg) などに問題があり、ビデオ ファイルを開くときに「ストリームの種類を特定できませんでした」というエラーが表示されます。
メモリ内にバッファの別のコピーを作成した理由は、サイズだけでなく実際のビット データを比較できるようにするためです。したがって、書き込まれるデータが読み取られるデータと同じであることがわかります。
c++ - C++ での strcpy の代替
Cでは、文字列のディープ コピーstrcpy
を作成していましたが、C++ で使用しても「問題ありません」か、代わりに使用すべきより良い代替手段がありますか?strcpy
c - Valgrind の警告: 真剣に考えるべきか
fgets(character, 2, fp)
背景:ストリームではなく文字列から文字を取得することを除いて、模倣する小さなルーチンがあります。newBuff はパラメータとして渡される動的に割り当てられる文字列であり、文字は として宣言されchar character[2]
ます。
ルーティーン:
strcpy は、各文字が読み取られるときに情報の損失を再現します。
問題: Valgrind は、このアクティビティについて「ソースと宛先が strcpy(0x419b818, 0x419b819) で重複しています」と警告します。
この警告について心配する必要がありますか?
c - 「strcpy」で作成された文字列は解放する必要がありますか?
「 strcpy 」で作成された文字列は解放する必要がありますか? そして、それを解放する方法は?
編集:宛先は次のように割り当てられます:
c - C の strcpy が二重インデックス配列で失敗するのはなぜですか?
次のコードはセグメンテーション違反のようで、その理由がわかりません。
c - strcpy 文字列配列
入力が20文字を超える場合、最初の20文字のみを取得するにはどうすればよいですか
c - strncmp/strcpyがソースを破損しています
今日、私はchar * stringと親しみを持とうとしていましたが、失敗しているようです:) strcmp / strncmp / strcpy関数を呼び出すたびに、ソースが破損します...
これがスニペットです
出力:
私はただの初心者なので、それは非常に単純なものかもしれません...そうではないかもしれません。ちなみに、LinuxとnetbeansをSDKとして使用し、gccをコンパイラーとして使用しています。