Gegeven is de onderstaande functie die de som bepaald van de opeenvolgende gehele getallen p tot q, dus som = p+...+(q-1). Wat is er mis met deze functie? int bepaalSom (int p, int q) { int i, som; som = 0; i=p; while (i != q) { som = som+i; i=i+1; } return som; }
De invoerwaarden p en q worden niet gecontroleerd. Als p>q, blijft het programma in een oneindige lus hangen
De som kan een te groot getal zijn, dat niet correct gerepresenteerd kan worden als integer. Stel dat we een systeem met 8-bits integers. Met p=10 en q=26, zou het wachtwoord 280 zij. Met 8 bits kunnen we echter maximaal 255 weergeven. er treedt een integeroverflow op en het resultaat is som=24