Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (GNU/Linux, *NIX, *BSD und Co) » Rekursion Speicherzugriffsfehler

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
04.07.2011, 11:24 Uhr
loofo



Hallo,

ich bin neu in c/c++ unterwegs und habe folgenden Code um Kombinationen ohne Wiederholungen zu ermitteln (z.B. 2 aus 4 ohne Beachtung der Reihenfolge).


C++:
#include <iostream>

using namespace std;

void print_array (int k, int array[])
    {
    static int count = 0;
    int i;

    cout << ++count    << ". (";
    for (i = 0; i < k - 1; i++)
        cout << array[i] << ",";    
    cout << array[k - 1] << ")\n";
    }

void komb_ow (int n, int k, int array[], int x)
    {
    int i;
    int max;

    if (x < k)
        {
        max = x ? array[x - 1] : 0;

        for (i = max + 1; i <= n - k + x + 1; i++)
            {
                array[x] = i;
                komb_ow (n, k, array, x + 1);
            }
        }
    else
        print_array (k, array);
    }

int main()
    {
    int array[2];

    komb_ow (4, 2, array, 0);
    }



Wenn ich nun in main() beim Aufruf der komb_ow() als zweiten Parameter 6 oder größer eingebe (z.B. komb_ow(8, 6, array, 0) für 6 aus 8), kommt immer ein Speicherzugriffsfehler - die Ausgabe entspricht aber den Erwartungen.

Woran kann das liegen?

Ach ja: compiliert mit g++ unter Ubuntu.

Schon mal vielen Dank für eure Ideen.

Dieser Post wurde am 04.07.2011 um 11:26 Uhr von loofo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
04.07.2011, 11:42 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ich vermute mal das du int array[2]; vergessen hast mit anzupassen?
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
04.07.2011, 14:44 Uhr
loofo



@FloSoft

Deine Vermutung war natürlich richtig. Manchmal übersieht man einfach die naheliegensten Dinge.

1000 Dank.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (GNU/Linux, *NIX, *BSD und Co) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: