¾ðÊó²Ê³Ø¤ò³Ø¤ÖÂç³ØÀ¸¤¬¥×¥í¥°¥é¥ß¥ó¥°(C¸À¸ì,Java¤Ê¤É)¡¢¥Í¥Ã¥È¥ï¡¼¥¯¡¢»ñ³Ê»î¸³(¾ðÊó½èÍýµ»½Ñ¼Ô»î¸³,CCNA)¤Ê¤É¤Ë´Ø¤¹¤ëµ»ö¤ò½ñ¤¤¤Æ¤¤¤Þ¤¹¡£
¼¡¤Î¥³¡¼¥É¤ò¤´Í÷²¼¤µ¤¤¡£forʸ¤Î·Ñ³¾ò·ï¤òi<a.length¤È¤¹¤Ù¤¤È¤³¤í¤Ç¡¢i<=a.length¤È¤·¤Æ¤·¤Þ¤¦¤È¤¤¤¦¡¢¥×¥í¥°¥é¥ß¥ó¥°¤ò»Ï¤á¤¿¤Ð¤«¤ê¤Îº¢¤Ë¤¢¤ê¤¬¤Á¤Ê¡©¥³¡¼¥É¤Ç¤¹¡£(*1)
public class Index {
public static void main(String args[]) {
int[] a = new int[10];
for(int i=0; i<=a.length; i++) a[i] = i;
for(int i=0; i<=a.length; i++)
System.out.println(a[i]);
}
}
¤³¤ì¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¼Â¹Ô¤¹¤ë¤È¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
$ java Index
Exception in thread "main"
java.lang.ArrayIndexOutOfBoundsException: 10
at Index.main(Index.java:4)
Java¤Ï¼Â¹Ô»þ¤ËÇÛÎó¤Îꤍ»ú¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤¤¤ë¤¿¤á¡¢1¤Ä¤Ç¤â¥ª¡¼¥Ð¡¼¤¹¤ë¤È"java.lang.ArrayIndexOutOfBoundsException"¤¬Åꤲ¤é¤ì¤Þ¤¹¡£
¤Ç¤Ï¡¢C¸À¸ì¤Ç¤Ï¤É¤¦¤Ç¤·¤ç¤¦¤«¡©
¼¡¤Î¥³¡¼¥É¤ÏÀèÄø¤ÎJava¤Î¥×¥í¥°¥é¥à¤òC¸À¸ì¤Ç½ñ¤Ä¾¤·¤¿¤â¤Î¤Ç¤¹¡£¤³¤ì¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¼Â¹Ô¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£
#include < stdio.h >
#define SIZE 10
int main() {
int i, a[SIZE];
for(i=0; i<=SIZE; i++) a[i] = i;
for(i=0; i<=SIZE; i++) printf("%d\n", a[i]);
return 0;
}
$ ./a
0
1
2
3
4
5
6
7
8
9
10
Àë¸À¤·¤¿ÇÛÎóÍ×ÁÇ¿ô¤ò1¤Ä¤À¤±¥ª¡¼¥Ð¡¼¤·¤Æ¤¤¤ë¤Ë¤â¤«¤«¤ï¤é¤º¡¢C¸À¸ì¤Î¾ì¹ç¤Ï²¿¤Î·Ù¹ð¤â¤Ê¤¯¼Â¹Ô¤Ç¤¤Æ¤·¤Þ¤¤¤Þ¤¹¡£¼¡¤Î¥³¡¼¥É¤Î¤è¤¦¤Ë¡¢¤â¤¦¾¯¤·Â¿¤á¤Ë¥ª¡¼¥Ð¡¼¤·¤Æ¤â·Ù¹ð¤¬½Ð¤ë¤³¤È¤Ê¤¯¼Â¹Ô¤µ¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
#include < stdio.h >
#define SIZE 10
#define OVERSIZE 90
int main() {
int i, a[SIZE];
for(i=0; i<=SIZE; i++) a[i] = i;
for(i=0; i<=SIZE+OVERSIZE; i++) printf("%d\n", a[i]);
return 0;
}
$ ./a
0
1
2
3
4
5
6
7
8
9
2280680
1628303575
1628878522
47
1628704768
¡ÊÃæÎ¬¡Ë
4198480
2273776
2293640
1627407504
2280912
0
(0¤¬Ï¢Â³)
0
¤Ç¤Ï¡¢¤É¤³¤Þ¤Ç¤â»²¾È¤¹¤ë¤³¤È¤¬¤Ç¤¤Æ¤·¤Þ¤¦¤Î¤Ç¤·¤ç¤¦¤«¡©¼¡¤Î¥×¥í¥°¥é¥à¤òÍѤ¤¤Æ¸¡¾Ú¤·¤Æ¤ß¤Þ¤·¤¿¡£
#include
#define SIZE 10
int main(int argc, char* argv[]) {
int i, a[SIZE], oversize = atoi(argv[1]);
for(i=0; i<=SIZE; i++) a[i] = i;
for(i=0; i<=SIZE+oversize; i++) printf("%d\n", a[i]);
return 0;
}
¤½¤Î·ë²Ì¡¢6000¤ò¤¹¤®¤¿¤¢¤¿¤ê¤Ç¤è¤¦¤ä¤¯Segmentation fault¤Ç»ß¤Þ¤ê¤Þ¤·¤¿¡£
10 [main] a 2956 _cygtls::handle_exceptions:
Error while dumping state (probably corrupted stack)
Segmentation fault (core dumped)
¤³¤Î¤è¤¦¤Ë¡¢C¸À¸ì¤Ï¤è¤Û¤ÉÂçÃÀ¤ËÇÛÎó¥µ¥¤¥º¤ò¥ª¡¼¥Ð¡¼¤·¤Ê¤¤¸Â¤ê¥¨¥é¡¼¤¬ÅǤ«¤ì¤ë¤³¤È¤Ï¤Ê¤¯¡¢¥³¡¼¥É¥ß¥¹¤Î¸¡ÃΤ¬ÃÙ¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹(*2)ÆÃ¤Ë¡¢ÇÛÎó¥µ¥¤¥º¤ò¾¯¤·¤À¤±¥ª¡¼¥Ð¡¼¤·¤Æ¤·¤Þ¤Ã¤¿¾ì¹ç¤Ê¤É¡¢´Ö°ã¤Ã¤¿¤«½ê¤Îȯ¸«¤¬º¤Æñ¤Ë¤Ê¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£
| ¿·ÈÇ ÌÀ²òC¸À¸ì ÆþÌçÊÔ | |
![]() | ¼ÆÅÄ˾ÍÎ ¥½¥Õ¥È¥Ð¥ó¥¯¥¯¥ê¥¨¥¤¥Æ¥£¥Ö 2004-08-28 Çä¤ê¾å¤²¥é¥ó¥¥ó¥° : 8980 ¤ª¤¹¤¹¤áÊ¿¶Ñ ![]() Amazon¤Ç¾Ü¤·¤¯¸«¤ë by G-Tools |
| ÌÀ²òJava ÆþÌçÊÔ | |
![]() | ¼ÆÅÄ Ë¾ÍÎ ¥½¥Õ¥È¥Ð¥ó¥¯¥¯¥ê¥¨¥¤¥Æ¥£¥Ö 2007-08-08 Çä¤ê¾å¤²¥é¥ó¥¥ó¥° : 803 ¤ª¤¹¤¹¤áÊ¿¶Ñ ![]() Amazon¤Ç¾Ü¤·¤¯¸«¤ë by G-Tools |
*1:¤Þ¤¢¡¢¤³¤Î¥³¡¼¥É¤Ç¤Ï4¹ÔÌܤÈ5¹ÔÌܤò°ì¤Ä¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¤Î¤ÇÉԲIJò¤ÊÅÀ¤Ï¤¢¤ê¤Þ¤¹¤¬¡¦¡¦¡¦4¹ÔÌܤÏÇÛÎó¤Îinit¤Ç¡¢¼ÂºÝ¤Ë¤Ï4¹ÔÌܤÈ5¹ÔÌܤδ֤ÇÇÛÎóÍ×ÁǤËÂФ·¤Æ²¿¤é¤«¤Î±é»»¤ò¤·¤Æ¤¤¤ë¤â¤Î¤È»×¤Ã¤Æ²¼¤µ¤¤(^-^;)
*2:OVERSIZE 90¤Î¥×¥í¥°¥é¥à¤Î¼Â¹Ô·ë²Ì¤Ë¡¢Ææ¤ÎÃ͡ʤ¿¤Þ¤¿¤Þ¥á¥â¥ê¤ÎÃæ¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤ëÃ͡ˤ¬½ÐÎϤµ¤ì¤Æ¤¤¤ë¤³¤È¤¬³Îǧ¤Ç¤¤ë¤è¤¦¤Ë¡¢ÌÀ¤é¤«¤ËÉÔÀµ¤ÊÃͤ¬ÆÀ¤é¤ì¤Æ¥ß¥¹¤Ëµ¤ÉÕ¤¯¤³¤È¤Ï¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£
¥Æ¡¼¥Þ:¥×¥í¥°¥é¥ß¥ó¥° - ¥¸¥ã¥ó¥ë:¥³¥ó¥Ô¥å¡¼¥¿ - ¥½¡¼¥·¥ã¥ë¥Ö¥Ã¥¯¥Þ¡¼¥¯:
![]()
Author:TBVector
»ä¤Î¥µ¥¤¥È
¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ÈRSS
ͧã¤Î¥µ¥¤¥È
¤¢¤ï¤»¤ÆÆÉ¤ß¤¿¤¤
¤Ï¤Æ¤Ê¥ê¥ó¥°