- ベストアンサー
NULL領域を読み書きするの意味が?
C言語の初学者です。 コンパイラは、Borland C++ 5.5.1 for Win32 を使っています。 たまたま見つけた C magazine プログラミングの禁じ手Web版 C言語編で、「NULL領域を読み書きする」という個所があり、下記ソースで発覚すると掲載されていました。 (http://www.cmagazine.jp/src/kinjite/c/null.html#index5) void f() { static char *theTxt; strcpy(theTxt,"TEST\n"); printf("%s",theTxt); } 自分の環境で、下記のソースで動かしてみたところ、アプリケーションエラーになりました。 #include <stdio.h> #include <string.h> int main(void) { static char *theTxt; /* (1) */ strcpy(theTxt,"TEST\n"); printf("%s",theTxt); return 0; } この禁じ手の意味そのものが、全く理解できませんでした。 ・NULL領域というのは、(1)のstatic定義されたポインタことをさしているのか? ・(1)の static をつけないで実行すると、正常終了したので、static の領域に書き込んではいけないのか? (そんなことはないと思うのだが)
- みんなの回答 (2)
- 専門家の回答
お礼
丁寧に答えていただきありがとうございました。 今まで、アドレスを考慮しないで済むプログラミングの世界におりましたので、この回答で理解することができました。