問題タブ [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: null ターミネータを構造体メンバにコピーする方法は?
基本的に、文字列をトークン化し、strncpy
見つかった文字列を構造体のメンバー、つまり stringid に変換しています。もちろん、終端がないという問題に悩まされています。そのために余分な配列スペースを追加しましたが、適切に追加する方法がわかりません。
私はそれを次のようにしました:
それが本当に機能するかどうかはわかりませんが、IMO は恐ろしいものに見えます。
null 文字または 0 を Str(n)cpy すると、GCC と MinGW によって警告が生成されます。
これをきれいな方法で行う方法がわかりませんか?メンバー配列をすべてゼロに memset し、文字列をコピーして null 終端にうまく収まるようにすることを考えていました。何か提案や実践はありますか?
c++ - cエラーのヘルプ
このエラーが発生します:
studio 2010 \ projects \ tarefa42 \ tarefa
42 \ main.cpp(112):エラーC2664:'cria_aluno':パラメーター2を'constchar[7]'から'char'1に変換できません>この変換が行われるコンテキストはありません可能です
これをコンパイルしようとすると:
それが私のcria_aluno関数です:
c - TurboCstrcpyライブラリ関数
strcpy関数が1つの文字列を葯にコピーするだけであることを発見しました。たとえば、プログラムに次のステートメントが含まれている場合:
文字列「Dante」は配列buffer[]に配置されます。文字列には終了null(\ 0)が含まれます。これは、全部で6文字がコピーされることを意味します。単純に言うだけでは同じ効果が得られないのはなぜだろうか。:
私が間違っていなければ、Cは文字列をBASICよりもはるかに配列のように扱います。
c - strcpy()の使用中にセグメンテーション違反が発生しましたか?
私はグローバルな構造を持っています:
そしてmain()で
なぜこれが起こるのですか、そして解決策を提案してください。
ありがとう
c - strcpy周辺のセグメンテーション違反?
私はあなたがナックルで私をラップすることを知っていますが。
セグメンテーション違反になるのはなぜですか
これがないとき
しばらく練習していなかったので、その理由が思い出せません。
ps:実際、strcpyの前にそのようなものが良いことを私は知っています
しかし、なぜこのセグメンテーション違反が発生するのか疑問に思っています。
ありがとう !
c - strcpy の実装でセグメンテーション違反が発生するのはなぜですか?
シンプルな strcpy を実装していますが、実行すると常にセグメンテーション エラーが発生します。助けてください!
以下は私のコードです:
c - strcpy() が受け付けるパラメータの型?
の定義がis
strcpy()
であるにもかかわらず、char 配列ポインターを受け入れるのはなぜですか?strcpy
char * strcpy( char * , const char * )
c - C - strcpy() が必要な理由
次のコード スニペットのように、文字列を文字配列に割り当てるために strcpy() が必要な理由を説明してください。
s = "abc"
失敗する理由とは?そして、なぜ strcpy() は、文字列が宣言された後に char 配列に文字列を代入する唯一の方法なのですか? 基本的な割り当てを実行するために関数を使用する必要があるのは奇妙に思えます。
c - char*をunsignedchar*に変換する
Cでchar*をunsignedchar*に正しくコピーするにはどうすればよいですか。以下は私のコードです。
char*配列をunsignedchar*配列に正しくコピーしたいと思います。上記のコードを使用すると、次の警告が表示されます
編集:さらに情報を追加します。私の要件は、呼び出し元がコマンドラインで文字列としてメイン関数にSHAダイジェストを提供し、メイン関数がそれをダイジェストに内部的に保存することです。SHAダイジェストは、unsignedcharを使用して最もよく表すことができます。
ここでの問題は、main関数がunsigned char*ではなくchar*として必要な他の引数を解析するため、main関数(** char)の署名を変更できないことです。
c - strcpy を故意に誤って使用しても、ひどく失敗しないのはなぜですか?
以下の C コードを使用してうまく動作するのはなぜstrcpy
ですか? 私はそれを2つの方法で失敗させようとしました:
1)strcpy
文字列リテラルから、小さすぎてそれを含めることができない割り当てられたメモリに入れようとしました。それはすべてをコピーし、文句を言いませんでした。
strcpy
2) 終了していない配列から試しましたNUL
。strcpy
と はうまくprintf
いきました。a が見つかるまで sをstrcpy
コピーしたと思っていましたが、何も存在せず、停止しました。char
NUL
これらが失敗しないのはなぜですか?何らかの形で「運が良かった」だけですか、それともこの機能の仕組みを誤解していますか? 私のプラットフォーム (OS X Lion) に固有のものですか、それとも最近のほとんどのプラットフォームはこのように動作しますか?
このコードの実行による出力は次のとおりです。