ss
-
EliteProgger schrieb:
Hi Leute schaut mal bitte mein code an ..
#include <iostream> using namespace std; int main() { //-------------------------------------------------------------- int n,a; int *p=new int[n+a];n und a sind nicht initialisiert! Woher soll denn Dein PC wissen, wieviel Speicher er anlegen soll?
EliteProgger schrieb:
//-------------------------------------------------------------- cout<<"Wie viele Elemente soll ihr Array haben?:"; cin>>n; //--------------------------------------------------------------ok aber jetzt noch schnell das 'a':
EliteProgger schrieb:
//-------------------------------------------------------------- cout<<"Wie viel elemte wollen sie hinzufuegen?:"; cin>>a; //--------------------------------------------------------------und dann erst new, denn sonst ist der Inhalt von n+a undefiniert
int *p=new int[n+a];und dann
EliteProgger schrieb:
for(int i=0;i<n;i++) { cout<<"\ngib das "<<i+1<<" ein :"; cin>>p[i]; } for(int i=n;i<(n+a);i++) { cout<<"\ngib das "<<i+1<<" ein :"; cin>>p[i]; } //--------------------------------------------------------------- for(int i=0;i<(n+a);i++) cout<<"\nergebnis:"<<p[i]; //--------------------------------------------------------------- delete [] p; //--------------------------------------------------------------- system("PAUSE>nul"); //--------------------------------------------------------------- }wenn man Array, nachdem es bereits angelegt wurde, vergrößern möchte, so muss man ein neues größeres anlegen und den den ersten Teil (hier 'n' Zahlen) umkopieren.
Gruß
Werner
-
Ähm. Du intialisierst a und b nicht. Desweiteren wird da auch nix vergrößert. Du solltest den User fragen wieviel Elemente er insgesamt eingeben will, dafür Speicher allokieren und dann die Schleife einfach laufen lassen. Wüsste grad nicht das C++ ein resize oder so kennt, womit man Speicher vergrößern könnte. Du müsstest also eine neue Variable anlegen, fragen wieviel elemente der User eingeben will, dann a+b bei der allokation zusammenaddieren (wie du es am Anfang gemacht hast, dann die alten Elemente dort reinkopieren und den Speicher vom alten Array freigeben. Dann kannst du alle Elemente am Stück ausgeben und zu guter letzt nochmal mit delete[] freigeben.
int a,b; // Eingabe, wieviel Elemente eingegeben werden sollen int *p=new int[a]; // Eingabe der Elemente // Erneutes fragen, wieviel Elemente eingegeben werden sollen int *new_p=new int[a+b]; // Alle Elemente von p nach new_p kopieren delete[] p; // Eingabe der weiteren Elemente, beginnend bei i=a bis i<a+b // Ausgabe der elemente von i=0 bis i<a+b delete[] new_p;
-
danke leute für eure schnell hilfe!!!
an CStoll hab leider noch nie was von STL-Container gehört sorry aber kommt bestimmt noch
-
EliteProgger schrieb:
an CStoll hab leider noch nie was von STL-Container gehört sorry aber kommt bestimmt noch
Kommt noch - und erleichtert gegenüber den new/delete-Konstruktionen die Arbeit erheblich

vector<int> data; cin>>n; data.resize(n); //... cin>>a; data.resize(data.size()+a); //...
-
kannst du wenigstens die überschrift ändern, SS-Elite-Progger.
-
Leon++ schrieb:
kannst du wenigstens die überschrift ändern, SS-Elite-Progger.
Und wie soll er das deiner Meinung nach machen?

-
den ersten post zu diesem thema, also
Hi Leute schaut mal bitte[...]
editieren und das thema ändern.
-
ach ja bitte gib dem thema nen ordentliches,unpolitisches thema ´,also nicht SA,HJ,HH,AH,etc.
-
LOL!
-
Leon++ schrieb:
den ersten post zu diesem thema, also
Hi Leute schaut mal bitte[...]
editieren und das thema ändern.
Versuch du mal als Gast-User einen Beitrag zu editieren

-
oh! stimmt!