Ich würde lieben, wenn Sie mir erklären könnten, warum das folgende Stück rekursiven Code das Wort "Test" nicht drucken. Danke im Voraus.Verständnis der Logik hinter einem Stück C-Code
void drawTetriminosEachPosition(int **tetriminos, char **dBoard, int **tBoard, int i){
char c;
char **dBoard2;
if(tetriminos[i] == '\0')
{
return;
}
else
{
dBoard2 = dBoard;
DrawTetrimino(tBoard, tetriminos[i], dBoard, i+65);
}
i++;
return (drawTetriminosEachPosition(tetriminos,dBoard,tBoard,i));
ft_putstr("test");
if(checkChar(tBoard,tetriminos[i]))
{
dBoard = dBoard2;
return (drawTetriminosEachPosition(tetriminos,dBoard,tBoard,i));
}
}
warum sollte es '„test“drucken'? alles nach der 'return'-Anweisung wird nicht ausgeführt – UnholySheep
scheint ich immer noch nicht rekursiv gut genug zu verstehen, dachte ich, dass sobald die tetriminos [i] == '\ 0' würde es zum vorherigen Aufruf der drawTetriminosEachPosition und zurückkehren Fortsetzung von diesem Punkt – Patratel
Aber du bist zurück! Entfernen Sie die Rückgabe - rufen Sie einfach die Funktion vor der ft_putstr. – cdcdcd