strcpy()の - 短い方に長い文字列をコピーする

S

sivamit

Guest
こんにちは、これはどのようにコードの動作しますか..?はchar * p ="のWiMAX"、CHARのarr [3]; strcpyの(ARR、P);のprintf("%s"が、ARR)、出力:WiMAXのコンパイラは警告またはエラーメッセージを表示doesntの.. whatz prblm ..?助けてください..!!!
 
C. ARRのポインタの(d)の利点厥基本的にarrが始まるメモリへのポインタです。それはNULL文字を(自動的に文字列"のWiMAX"の後に私のコンパイラの場所であった)が見つかるまで、strcpyの(ARR、P)にはポインタとしてそれを使用している、strcpyの送信元から宛先までのすべてのデータをどのようにコピーではありません。ですから、pからARRへの完全な文字列をコピーしてしまう。あなたがARR後に変数を宣言する場合[3];、その値がstrcpy()ので上書きされることがわかります。
 
私は添付ファイルは問題を明確にすることができると思う.... :D:アイデア:
 
ARRは、"WiMAXの"とヌル文字ターミネータ(0)用のためのストレージの6台、5が必要です。 Cコンパイラは、プログラマのためのベビーシッターコードを記述していません。あなたがメモリを上書きする場合、あなた自身の上にある、コンパイラは境界チェックを行うコードを生成しません。この場合、strcpy関数は()プログラムがクラッシュするというメモリを上書きしていない。
 

Welcome to EDABoard.com

Sponsor

Back
Top