回答編集履歴
1
抜けてた char を追加
answer
CHANGED
@@ -9,8 +9,8 @@
|
|
9
9
|
void mdump(void *vp, int size, const char *msg);
|
10
10
|
int main(void)
|
11
11
|
{
|
12
|
-
char str1[100] ="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
|
12
|
+
char str1[100] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
|
13
|
-
char str2[1000]="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
|
13
|
+
char str2[1000] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
|
14
14
|
printf("str1は%lu\n", strlen(str1));
|
15
15
|
printf("str2は%lu\n", strlen(str2));
|
16
16
|
|
@@ -92,7 +92,7 @@
|
|
92
92
|
|
93
93
|
さらに、たとえば
|
94
94
|
```C
|
95
|
-
str2[1000]; // ="aaaaa...a";
|
95
|
+
char str2[1000]; // ="aaaaa...a";
|
96
96
|
```
|
97
97
|
とすれば、str2[1000] は初期化されない 1000 バイトのメモリ領域となり、そこに在る様々な値、**いわゆるゴミ**ですが、見ようによっては美しい模様として眺めることができます。このように実際のメモリの姿を見ておくとC言語の仕組みの一端を具体的に実感としてつかむことができ、デバッグにも役立ちます。
|
98
98
|
Enjoy !
|