aufbau eines mehrdimensionalen arrays



  • Hi

    folgende ausgangssituation:

    filepGrid = fopen(strFullPath, "w");
    if(filepGrid != 0)
    {
    	for (iY = 0; iY < 24; iY++)
    	{
    		for (iX = 0; iX < 40; iX++)
    		{
    			fwrite(&m_gspGrid[iX][iY],SIZE_GS, 1, filepGrid);
    		} 
    	}
    	fclose(filepGrid);
    }
    

    eine der beiden schleifen ist nun nicht nötig:

    wenn das array erst alle iX aneinanderreiht:
    x1|1,x2|1,x3|1,....,x40|1 und dann kommen die aus der zweiten zeile x1|2,x2|2,x3|2,....,x40|2 dann kann ich gleich 40 sätze auf einmal speichern

    nur es könnte auch andersrum sein 🙂
    also meine frage ist wierum werden die im speicher gespeichert

    danke schon mal



  • Wozu willst Du das genau wissen?
    Wenn Du die Daten ausliest, kannst Du sie doch so zusammen stellen wie Du willst.
    In deinem Fall sollte Die X-Liste die Y's halten

    Hier mal ein Beispiel, wo es deutlicher wird.

    int x=10,y=10,**feld;
    int i,j;
    feld=new int*[x];
    for(i=0; i<x;i++)
    {
      feld[i]=new int[y];
      for(j=0; j<y; j++)
        feld[i][j]=j+i*x;
    }
    

    Du erhälst ein Feld das mit den Zahlen von 0 bis 99 gefüllt ist.
    Intern ist diese Feld ein X-Feld der größe 10, wobei jedes X-Element 10 int's (Y's) hält.



  • Danke Daishi!

    Du hast mir soeben die Lösung meines Diesnächtlichen Problems gebracht! Ich wusste nämlich nich wie ich ein zweidimensionales Feld dynamisch anlege. einfach mit char *Terrain = new char[12][34]; geht das nämlich nich!

    könntest du mir noch erklärn, wie ich die Felder sauber lösche?? ich hab die Lösung:

    for(int i = 0; i < x; i++)
    {
       delete[] *feld;
    }
    delete[] feld;
    

    is die vollkommen??

    ich bin nur zu gast



  • Kein Problem, Du hättest es aber auch im FAQ gefunden oder beim googlen. 😃


Anmelden zum Antworten