dynamische erstellung eines arrays



  • -Text



  • hallo

    stell dein array mir new her

    int *deinarray=new int[flexiblerwert];
    


  • -TEXT



  • die frage hat elise doch schon beantwortet....

    int max;
    	std::cin>>max;
    	int *arr=new int[max];
    	for(int i=0;i<max;++i)
    	   std::cin>>arr[i];
    

    //edit namensgebung



  • Dann will ich mal kurz auf das wichtige Stück eingehen, denn manchmal ist es auch hilfreich zu wissen was nicht funktionierender Code macht (oder machen würde) :D:

    cout<<"Sie wollen also " <<werteanz ; cout<<" Werte in die Datei " << dateiname ; cout<<" schreiben" <<endl ;
    

    Warum nicht cout << "Text" << variable << "text" << ....?

    y[100] = werteanz ;
    

    Hier weist Du dem 100. Element von y - welches nicht existiert da nur Elemente 0-99 vorhanden sind -> Arrayüberlauf - die Anzahl der Werte zu.

    for(t=0;t<=werteanz;t++)
          {
           cout<<"Wert : "  << endl ;
           cin >> y[t] ;
          }
    

    Hier liest Du in den 100stelligen Array "y" ein. Warum, ich dachte Du willst in das dynamische Array "werteeingabe" einlesen?

    werteeingabe[werteanz];
    

    Du liest aus dem dynamisch generierten Array werteeingabe das Element welches eine Position hinter dem letzten Element liegt -> Arrayüberlauf. Desweiteren wertest Du dieses Element nicht aus.

    for (i=0;i<werteeingabe[i];i++)
             {
              schreiben << werteeingabe ;
             cout << werteeingabe ;
              }
    

    Und nun schreibst Du die Adresse des dynamisch generierten Arrays so oft in die Datei bis i den i-ten Wert des selbigen Arrays erreicht hat. Ob das jemals passiert sei mal dahingestellt.

    Eine letzte Sache: Das dynamisch generierte Array hat "irgendeine" Anzahl. Du verwendest die Variable werteanz zum ersten Mal, bevor Du ihr einen Wert zugewiesen hast.



  • -TEXT



  • Jetzt haben es dir schon zwei Leute erklärt, elise und shapeless.
    Was willst du denn noch? 😕

    Aessina schrieb:

    kannste mir das vielleicht nicht anhand meiner aufgabe erklären und umsetzen?

    Irgendwie beschleicht mich das Gefühl, dass hier null Eigeninitiative vorhanden ist... 🙄

    Aessina schrieb:

    so lerne ich am besten und schnellsten was das mit dem dynamischen array auf sich hat

    Das mit dem "schnellsten" glaube ich dir, das "lernen" und das "am besten" nicht...



  • -TEXT



  • Aessina schrieb:

    allerdings steh ich argh unter zeitdruck. muss das projekt morgen abgeben und die 2 optionen hätte ich denn dann doch noch gerne.

    Vielleicht hättest du dir das vorher überlegen müssen...

    aber naja, ein Tip kriegst du noch:

    // Nachdem werteanz eingegeben wurde:
    int* werte = new int[werteanz]; // erzeugt ein Array der Größe werteanz
    
    // Array mit Eingaben des Benutzers füllen
    for(int i=0; i<werteanz; ++i)
    {
        cout << "Wert: ";
        cin >> werte[i];
    }
    

Anmelden zum Antworten