다음 스 니펫에서 의심의 여지가 있습니다. 사실 나는 모든 배열 인덱스를 다음 코드에서 0으로 초기화하고 있지만이 for
루프는 무한하게 진행됩니다. 우리가 배열의 26 번째 인덱스에 액세스하려고 시도하는 이유를 발견했습니다. 그래서 0에서 25 개의 인덱스가 있으므로 값은 다시 0으로 초기화됩니다. 따라서 for 루프는 무한히 진행됩니다. 이 물건 뒤에 실제 이유가 있는지 설명하십시오.배열의 정수 인덱스 증분
int array[26];
int i;
for (i = 0; i <= 26; i++)
array[i]= 0;
우리가 인덱스를 초과하는 경우, 그 인덱스 값이 아닌 내가 값을 변경하는 가정합니다. 그것은 매우 약화 된 것 같습니다. 어떤 신체가 무의식적으로 초기화하지 않는 다른 목적으로 사용하는 경우. 그것은 커다란 피해를 줄 수 있습니다. – Pavunkumar
배열 외부의 메모리 위치에 쓸 수 있습니다. 분명히이 위치에 * something *이 있습니다 - 그리고 제가 말했듯이, 보통 배열 뒤에 정의 된 var입니다. – ThiefMaster
@pavun_cool : 네, 큰 피해를 줄 수 있습니다. 버퍼의 끝에 지나지 않도록주의해야합니다. 이것은 소프트웨어 세계에서 엄청난 수의 버그가 발생했는데, 그 중 일부는 우주 로켓을 폭발 시켰습니다. 저수준 프로그래밍에 오신 것을 환영합니다. –