char-Matrix ???



  • Ich habe eine funktionierende Speicherallokierung für eine double matrix. Jetzt brauche ich das selbe für ein char. Habe aber immer wieder Probleme damit. Wäre sehr dankbar, wenn mir jemand tipps und Hilfe gibt.

    Ich möchte in der char-Matrix mit einer Laufvariablen auf ein Wort zugreifen können.

    folgende Funktion habe ich jetzt schon öfter versucht umzuschreiben:

    double **dmatrix(int nrl, int nrh, int ncl, int nch)
    	{
    		int i;
    		int nrow = nrh-nrl+1;               //Anzahl Zeilen
    		int ncol = nch-ncl+1;               //Anzahl Spalten
    
    		double **m;
    
    		//****************** Zeilen allokieren *********************
    		m= (double **) malloc((size_t)((nrow+NR_END)*sizeof(double *)));
    		if (!m) printf("Allokationsfehler 1 in dmatrix()");
    		m += NR_END;
    		m -= nrl;
    
    		//****************** Spalten allokieren *******************
    		m[nrl]= (double *) malloc((size_t)((nrow*ncol+NR_END)*sizeof(double)));
    		if (!m[nrl]) printf("Allokationsfehler 2 in dmatrix()");
    		m[nrl] += NR_END;
    		m[nrl] -= ncl;
    
    		for (i=nrl+1; i<=nrh; i++) m[i] = m[i-1]+ncol;
    
    		return m;
    	}
    

    Beim umschreiben habe ich versucht die double-Befehle durch char zu ersetzten. Vermutlich habe ich mir es damit etwas zu leicht gemacht, oder?

    Falls jemand ne ganz andere Methode für mich hat, die den selben Zweck erfüllt nehme ich die auch gern an.



  • ➡ Ansi C



  • Hi,

    nein, das ist C++, den //-Kommentar gab/gibt es in ANSI-C nicht (obwohl in viele C-Compiler trotzdem erlauben). 😃

    ChrisM



  • ChrisM schrieb:

    nein, das ist C++, den //-Kommentar gab/gibt es in ANSI-C nicht (obwohl in viele C-Compiler trotzdem erlauben). 😃

    Doch, mittlerweile schon länger. (Zumindest seit C99.)



  • Mich düngt meine Programmiersprache scheint euch zu sehr veraltert, als dass ihr mir auf mein Problem antworten tut.



  • Ich hoffe niemand düngt Dich sondern es "dünkt Dir" schlimmstenfalls etwas. 🤡

    Nun, Du hast hier C im C++-Forum gepostet; in C++ würde niemand so eine Funktion verwenden. (Und ehrlich gesagt bin ich mir da auch bei C nicht so sicher...)




Anmelden zum Antworten