Hi,

 > mein problen ist nun das ich mit den for() schleifen nicht auf das
 > richtige ergebniss komme.
 
 zu den Vorrednern wollte ich noch zwei Punkte erg�nzen.

 
> c code mit for ():
> 
> #include<stdio.h>
> 
/* alle Variablen, die hier deklariert werden (globale Variablen)
 werden beom Programmstart sauber (mit hex 0) initialisiert.*/
 
> void main(void)
> {
/* f�r Variablen, die hier (oder innerhalb einer anderen funktion)
   deklariert werden, wird nur entsprechender Speicher reserviert.
   eine evetuelle Initialisierung muss der programmierer liefern. */
>     int matrix_a[4][5] = {{ 3, 15, 10, 30, 14},
>                         { 16, 12, 12 ,24, 8},
>                         { 8, 5, 15, 20, 20},
>                         { 10, 8, 14, 10, 25}}, 
/* werte sind initialisiert */
>     matrix_b[5] = { 3, 2, 1, 2, 3},
/* werte sind ebenfalls initialisiert */
>     ges_pkte[4], 
/* ges_pkte hat den Inhalt vom letzten Gebrauch dieses Speicherbereiches */
>     a, b, i;
/* gilt auch f�r a, b, und i */ 
 
>     for( b=0; b<5; b=b+1)
/* wie bereits gesagt �berfl�ssig, doch nicht nur das, sondern
   auch gef�hrlich. Die Schleife l�uft bis b=4, aber weder
   ges_pkte[4] noch matrix_a[4] ist definiert. Operationen an diesen
   Speicherpl�tzen k�nnen daher zu den wunderlichsten Ergebnissen
   f�hren und sind keinesfalls vorhersagbar. Das c hier nicht �berpr�ft
   ob die Arraygrenzen eingehalten werden, machen sich manche, 
   unangenehmere Zeitgenossen dies zu nutze. was du hier hast
   ist ein paradebeispiel f�r einen Bufferoverflow - bekannterweise
   eine beliebtes Angriffsziehl f�r cracker. */
>       for( a=0; a<5; a=a+1)
>           for( i=0; i<4; i=i+1)
>               ges_pkte[b] =
/* Bufferoverflow f�r b=4 */
>                   ges_pkte[b] +
>                   matrix_b[b] * matrix_a[a][i];
/* Bufferoverflow f�r a=4 */
> 
/* den Rest des Codes schenken wir uns.
> }

 Wenn du Gl�ck hast, st�rzt das Programm bei solchen Fehlern mit
 nem segfault ab, wenn nicht, k�nnte schlimmeres passieren.

 also, immer sch�n vorsichtig bleiben

 Helmut
 
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org

Antwort per Email an