Fix unintended array overrun in example (#360. Thanks @quantum-leaps)

This commit is contained in:
Mark VanderVoord
2018-11-02 07:42:47 -04:00
parent 695dd04d53
commit 7dd21c333e
+4 -4
View File
@@ -4,14 +4,14 @@
int Counter = 0; int Counter = 0;
int NumbersToFind[9] = { 0, 34, 55, 66, 32, 11, 1, 77, 888 }; /* some obnoxious array to search that is 1-based indexing instead of 0. */ int NumbersToFind[9] = { 0, 34, 55, 66, 32, 11, 1, 77, 888 }; /* some obnoxious array to search that is 1-based indexing instead of 0. */
/* This function is supposed to search through NumbersToFind and find a particular number. /* This function is supposed to search through NumbersToFind and find a particular number.
* If it finds it, the index is returned. Otherwise 0 is returned which sorta makes sense since * If it finds it, the index is returned. Otherwise 0 is returned which sorta makes sense since
* NumbersToFind is indexed from 1. Unfortunately it's broken * NumbersToFind is indexed from 1. Unfortunately it's broken
* (and should therefore be caught by our tests) */ * (and should therefore be caught by our tests) */
int FindFunction_WhichIsBroken(int NumberToFind) int FindFunction_WhichIsBroken(int NumberToFind)
{ {
int i = 0; int i = 0;
while (i <= 8) /* Notice I should have been in braces */ while (i < 8) /* Notice I should have been in braces */
i++; i++;
if (NumbersToFind[i] == NumberToFind) /* Yikes! I'm getting run after the loop finishes instead of during it! */ if (NumbersToFind[i] == NumberToFind) /* Yikes! I'm getting run after the loop finishes instead of during it! */
return i; return i;