【C】strcpyについて

1774 ワード

初心者はstrcpyの損をしたことがあるに違いない.コンパイルが通ったのに、実行中に崩れてしまうことがある.これはなぜだろうか.
 
次に例を示します
運転環境:オペレーティングシステムwin 7、コンパイラVC 6.0
    
#include <stdio.h>

#include <string.h>

int main()

{

     char str1[]="dest", *str2="dest";



     strcpy(str1,"src");

     strcpy(str2,"src");

     printf("%s
", str1); printf("%s
", str2); return 0; }

 
 
このプログラムはコンパイルに合格したが実行に失敗した例である.これは、実行時のメモリ割り当ての問題に関連しています.
str 1は文字配列であり、スタック領域に割り当てられるので動作可能である.str 2は定数領域を指すので操作できません.
 
信じないならその一部を注釈してみてください