prototypen
-
Hallo,
Ich soll nach einer Vorgabe Prototypen schreiben (nicht die ganzen Funktionen wie im Text. Nur die Deklaration).
Bei zwei komm ich leider nicht weiter:
"Schreiben Sie eine Funktion PrintfMatrix, welche den Zeiger einer Matrix und
einen Formatstring entgegennimmt und die Elemente der Matrix dem Formatstring
entsprechend formatiert auf stdout ausgibt."Was für einen Datentyp muss der Formatstring haben? Reicht es bei der Aufgabenstellung den Zeiger zu übergeben oder muss ich zusätzlich die Dimensionen mitschicken?
Schreiben Sie eine Funktion CloneMatrix, welche den Zeiger einer Matrix ent-
gegennimmt und als Ergebnis einen Zeiger auf eine dynamisch angelegte Kopie der
übergebenen Matrix zurückgibt.Ähnlich wie oben. Müssen die Dimensionen mit? Wenn ja, was mach ich mit return?
Nur den Zeiger zurückgeben?danke...
-
Ich würde annehmen, dass Matrix ein Strukturtyp ist, der neben den eigentlichen Werten noch die Dimension enthält. Ein Formatstring dürfte analog zu printf() einfach nur ein
const char *format
sein.
-
Hallo,
Strukturtyp ist es nicht, weil wir den im Unterricht noch nicht behandelt haben.
const char * ... wie würde ich den in der funktion weiterbehandeln? Einfach bei printf einsetzen?:void PrintfMatrix(double *matrix,const char *format);
{
printf(*format,*matrix) // so?
}mfg
-
Hab noch was vergessen:
Es handelt sich um dynamische 2D arrays.
-
muss ich zusätzlich die Dimensionen mitschicken?
Wenn nicht auf Tims Weise: Ja.
-
Wenn nicht auf Tims Weise: Ja.
Oder doch irgendwie terminieren...
Aber fang damit lieber gar nicht an.
-
defa schrieb:
Strukturtyp ist es nicht, weil wir den im Unterricht noch nicht behandelt haben.
...
void PrintfMatrix(double *matrix,const char *format);
{
printf(*format,*matrix) // so?
}'ne matrix ist ja ein zweidimensionales ding, also musste zeilen- und spaltenzahl mit angeben, so etwa:
void print_matrix (double *matrix, int n, int m) { int nn, mm; for (nn=0; nn<n; nn++) { for (mm=0; mm<m; mm++) { printf ("%f ", matrix[mm+nn*m]); // oder: [nn+mm*n] } printf ("\n"); } }
-
Hallo,
Ok also für das übergeben einer Matrix ist es immer:
(double *,int,int)
aber was mache ich wenn ich eine matrix zurückgeben will?
double *func() liefert ja wieder nur den zeiger.
muss ich dann extra 2 zeiger an func übergeben in welche ich die dimensionen speichern kann?:
double *func(int *,intmfg
-
symbian schrieb:
muss ich dann extra 2 zeiger an func übergeben in welche ich die dimensionen speichern kann?
theoretisch schon. deshalb arbeite besser mit structs.