Wie kann ich den Inhalt einer char-Matrix in einer Funktion an eine andere Matrix mit gleichen Dimensionen in einer anderen Funktion übergeben?Senden des Inhalts einer Matrix in einer Funktion an eine Matrix in einer anderen Funktion
Antwort
Übergeben Sie den Zeiger an das erste Element in der Matrix und die Größe.
Da Sie zu wissen scheinen, dass die Matrizen von konstanter Größe sind, ist die Aufgabe so einfach wie das Übergeben eines Doppelzeigers (char**
hier) an die Funktion, die sich auf die übergebene Matrix bezieht.
Sie müssen die Dimensionen übergeben, wenn die Zeilen/Spalten der übergebenen Matrix unbekannt sind, da C jedoch nicht die Größe von Arrays im Speicher verfolgt (sie sind nicht mehr als Zeiger mit syntaktischem Zucker).
Sie können den Inhalt der Matrix in die memcpy-Funktion kopieren.
/*
* mat: matrix to duplicate.
* rows: rows in mat.
* cols: cols in mat.
*/
void matdup(char mat[][],size_t rows,size_t cols){
char dupmat[rows][cols];//duplicate matrix in stack.
memcpy((void*)dupmat,(void*)mat,rows*cols);
//do stuff with matrix here.
}
Mit diesem können Sie eine neue Matrix innerhalb der matdup Funktion zu verwenden.
+1; Es ist jedoch nicht notwendig, auf 'void *' zu werfen – Christoph
- 1. eine Funktion Generieren einer Matrix in R
- 2. Multiplizieren Sie jede Spalte einer Matrix mit einer anderen Matrix
- 3. Berechnen des Nullraums einer Matrix
- 4. Verschiebungswert in einer Matrix
- 5. Wie kann ich eine Matrix in einer Reihe einer anderen Matrix speichern? MATLAB
- 6. Wie passt man eine gegebene 2d-Matrix an die Submatrix einer anderen 2d-Matrix an?
- 7. Wie wird eine Variable in einer Funktion in einer anderen Funktion aufgerufen?
- 8. Kopieren einer Datei des Inhalts in einer anderen in Python
- 9. Einfügen einer Matrix in eine andere Matrix mit Matlab
- 10. Hash-Funktion zu Matrix
- 11. Größte in einer Matrix von ganzen Zahlen
- 12. Konvertieren einer dünn besetzten Matrix in eine vollständige Matrix - R
- 13. jede dritte Zeile einer Matrix in eine neue Matrix setzen
- 14. in R: Spaltenmultiplikation einer Matrix mit einer anderen Matrix ohne Schleife
- 15. Anruf Funktion in einer anderen Funktion Anruf
- 16. Überprüfen Sie, ob jede Zeile einer Matrix in einer anderen Matrix ist [Python]
- 17. Einstellung von NA in einer Matrix unter Verwendung einer anderen logischen Matrix
- 18. Suche Elemente der Matrix in einer anderen Zelle in Matlab
- 19. nrow (Matrix) -Funktion
- 20. R eine Matrix in einer Schleife füllen
- 21. Drucken eines Wörterbuchwerts einer Funktion in einer anderen Funktion
- 22. Detecting Diagonalen in einer Matrix
- 23. before_install in einer Build-Matrix
- 24. Lösen einer Matrix in MATLAB?
- 25. Inverse einer Matrix in SymPy?
- 26. Speichern 3x3 Matrix in einer Variablen in einer for-Schleife
- 27. "Vorberechnung" einer Matrix in mathprog
- 28. Gründe, warum das Multiplizieren einer symmetrischen Matrix mit einer diagonalen Matrix eine unsymmetrische Matrix ergibt
- 29. Indizierung einer Matrix in R
- 30. Werte in einer Matrix ändern
Dies setzt voraus, dass seine Matrix als ein Array von Zeigern zu Arrays bezeichnet wird, während Chancen, dass er nur eine regelmäßige zusammenhängende 2-D-Array hat – newacct