Dynamische Arrays an Funktionen übergeben

Den ich erstellt habe 2 dynamische arrays in der main-Funktion. Ich habe bestanden beide auf die Funktion von Referenz. Dann kopiere ich Daten aus kleineren dynamischen array auf die größeren dynamischen array. Ich lösche den kleineren dynamischen array. Weisen Sie die Adresse der größeren dynamischen array zu den kleineren, dynamischen Arrays. Jetzt im Idealfall die arr-array sollte die Größe 10. Jedoch, wenn ich versuche zu drucken, das 6. element des Arrays in der main, es stürzt ab. Bitte haben Sie einen Blick auf den folgenden code:

#include <iostream>
#include <string> 

using namespace std; 

void func(string * arr, string * brr); 

int main()             
{ 
    string* arr = new string[5]; 
    arr[0] = "hello0"; 
    arr[1] = "hello1"; 
    arr[2] = "hello2"; 
    arr[3] = "hello3"; 
    arr[4] = "hello4"; 

    string* brr = new string[10]; 


    func(arr, brr); 

    for(int i = 0; i < 6; i++) 
        cout << arr[i] << endl; 

    return 0; 
} 

void func(string * arr, string * brr) 
{ 
    for(int i = 0; i < 5; i++) 
        brr[i] = arr[i]; 

    for(i = 0; i < 5; i++) 
        cout << brr[i] << endl; 

    delete []arr; 

    arr = brr; 

    arr[5] = "hello5";
} 
InformationsquelleAutor Samulk | 2012-02-06
Schreibe einen Kommentar