Übergabe eines System::String arrays an eine function



  • Hallo,
    ich möchte eine System::String array an eine function übergeben in der das Array gerisized wird.
    Bsp.:

    void main()
    {
      String *pstr=new String*[0];
      int nsize=ResizeMe(pstr);
    }
    
    int ResizeMe(String *&str[])
    {
      int nsize=10;
      str=new String*[nsize];
      return nsize;
    }
    

    Leider bekomme ich die Meldung
    error C2234: 'str': Arrays aus Verweisen sind unzulässig

    Kann mir da vielleicht jemand helfen?
    Vielen Dank!!!



  • Hi, probier mal das:

    int ResizeMe(String* str[])/*...*/
    


  • Ja aber dann resize ich ja nur den Pointer.
    Also ich mache aus Pointer auf Adresse d3u38fu83u83d3 10x Pointer auf Adresse r33r3r3r3r



  • System::String wird doch gemanaged?

    System::String ^ str = gcnew System::String;
    

    Und für das Array gibts nette Container, z. B. System::Collections::Generic::List<System::String ^>

    void fill(System::Collections::Generic::List<System::String ^> ^ & List)
    {
    	for (int i = 0; i < 10; i++)
    	{
    		List->Add(gcnew System::String("bla bla bla"));
    	}
    }
    
    void main()
    {
    	System::Collections::Generic::List<System::String ^> ^ l = gcnew 			System::Collections::Generic::List<System::String ^>;
    
    	fill(l);
    
    	for (int i = 0; i < l->Count; i++)
    	{
    		System::String ^ item = l[i];
    	}
    }
    

Anmelden zum Antworten