問題タブ [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()
Cの機能が悪い、悪いと思っている人もいるようです。strncpy()
通常はバッファ オーバーフローを回避するために使用する方がよいことは認めますが、次の (このstrdup()
関数を使用することができなかった人のための関数の実装) は、安全に使用し、オーバーフローすることはstrcpy()
ありません。
*s2
を保存するのに十分なスペースがあることが保証されており*s1
、を使用するとstrcpy()
、結果を別の関数に保存して、strlen()
後で不要な (この場合) の長さパラメーターとして使用する必要がなくなりますstrncpy()
。しかし、長さパラメータを必要とするや を使ってこの関数を書く人strncpy()
もいます。memcpy()
人々がこれについてどう思うか知りたいです。特定の状況で安全だと思う場合strcpy()
は、そう言ってください。このような状況で使用しない正当な理由がある場合は、それを教えてください。このような状況で使用するstrcpy()
方がよい理由を知りたいです。大丈夫だと思うが、ここにない場合は、説明してください。strncpy()
memcpy()
strcpy()
memcpy()
基本的に、他の人が使用するときに使用する人strcpy()
もいれば、プレーンを使用する人もいる理由を知りたいだけですstrncpy()
。3つよりも1つを優先するロジックはありますか(最初の2つのバッファチェックを無視します)?
c++ - strcpy... strncpy と null で終了する strcpy_mine に置き換えたい
手がかりはタイトルにありますが、基本的には strcpy の 800 以上のインスタンスを持つコードを継承しています。新しい関数を作成してから、strcpy を strcpy_mine に置き換えたいと考えています。
そのため、strcpy_mine にどのようなパラメーター リストが含まれるかを調べようとしています。
私は試した:
ただし、sizeof は常に 4 pCopyMe はポインターです
私がしたくないことは交換することです
と
何か案は?(strcpy_l は利用できません)
c - strcpy の代わりに strncpy を使用する必要があるのはなぜですか?
編集:例のソースを追加しました。
私はこの例に出くわしました:
この出力を生成したもの:
これは、なぜ誰もがこの効果を望んでいるのか疑問に思います. 混乱しそうです。このプログラムは、Tom Bro763 で誰かの名前 (Tom Brokaw など) を基本的にコピーできると思います。
strncpy()
over を使用する利点は何strcpy()
ですか?
c - strcpy使用時のアクセス違反?
strcpy C 関数を再発明しようとしましたが、実行しようとすると次のエラーが発生します。
行でエラーが発生します*dest = *src;
。コードは次のとおりです。
編集:うわー、それは速かったです。呼び出しコードは次のとおりです (strcpy は mystring.c で定義されています)。
c++ - char配列へのポインタがその配列に文字を割り当てるためにstrcpyを必要とし、二重引用符の割り当てが機能しないのはなぜですか?
最初の例は、ポインタを削除しようとすると機能しません。ヌルターミネータを追加するとプログラムがハングするか、ヌルターミネータがないと次のようになります。
Debug Assertion Failed Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
VisualStudio2008から
では、strcpyの代わりに二重引用符を使用するとどうなりますか?どちらも文字列を完全に削除し、デバッガーは何も変わりません。
c - dest バッファが src バッファより小さい場合の strcpy
strcpy と strncpy の違い/欠点を理解しようとしています。誰か助けてください:
出力は次のとおりです。
質問: ソース文字列がどのように変更されたのかわかりません。説明によると、strcpy は '\0' に遭遇するまでコピーし続ける必要があります。
説明してください。
c++ - char 配列をコピーしない、関数 swap が正しくコンパイルされない、stringPtr が変更されない
//ヘッダー ファイル内: クラス定義:
// cpp ファイルで、メンバー関数を定義します
c++ - コードで strcpy ランタイム エラーが発生するのはなぜですか?
コードを Windows (Mac から移動) で動作させようとしていますが、何らかの理由で strcpy 呼び出しに関連するランタイム エラーが発生します。
助けてください!!
Cust.h
Cust.cpp
main.cpp
P3_custData.txt
c++ - strcpyのようなものにしようとするポインタでプログラムがクラッシュする
これは今日の私の2番目の問題であり、ポインターは私に悪夢を与えています。strcpy()関数と同じことを行うプログラムを作成しようとしています。一度試してみると、クラッシュして、コード内のポインターの問題であると100%確信しています。ある種の初期化されていないポインタ(*コピー)があるので..しかし、私はそれにNULLを割り当てました...それで、Null割り当てが正確に何のためにあるのか誰かに教えてもらえますか?私はその使用法を誤解していると思うので。そして、正常に実行するためにプログラムにどのような修正を加えることができるか教えてください。
前もって感謝します 。