Array von Pointern auf int
-
Der Title sagt schon alles: Ich möchte ein Array von int*.
Ich habe schonint* array[] = new int*[100];
probiert, aber leider habe ich wohl einen Denkfehler. Wie muss es richtig heißen?
Außerdem würde ich gerne alle Pointer,wie man das so macht mit 0 initialisieren.
Dafür fallen mir spontan memset/fill/fill_n ein. Da ich aber keinen Umweg über Iteratoren machen möchte würde ich gerne memset nehmen. Wie geht das in diesem Fall hier?
-
Erstens: Wenn du ein Array dynamisch anlegen willst, mußt du dessen Adresse in einem Pointer speichern:
int** data = new data*[100]; for (int i=0;i<100) data[i]=...;
Zweitens: fill und fill_n funktionieren auch mit Pointern - also kannst du dir eins von den folgenden aussuchen:
memset(data,0,100*sizeof(int*));//memset arbeitet auf BYTE's, deshalb sizeof(...) fill(data,data+100,NULL); fill_n(data,100,NULL); //fill arbeitet auf typisierten Objekten, also brauchst du die Anzahl
-
Vielen Danke, der Beitrag hat mir sehr geholfen.
Welche der Lösungen ist wohl am schnellsten?