Ich muss eine Funktion schreiben, die mir helfen sollte, eine Matrix unter Verwendung einer Struktur zuzuordnen. Ich fing an, die Strukturen heute zu studieren. Also schrieb ich diesen Code mit dieser Struktur und der relativen Haupt die Funktion zu beweisen:Wie kann ich eine Matrix mit Strukturen zuordnen?
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
typedef struct {
int rows;
int cols;
float **row_ptrs;
} Mat;
Mat* Mat_alloc(int rows, int cols);
int main(int argc, char **argv)
{
Mat *m1 = Mat_alloc(int rows, int cols);
return 0;
}
Mat* Mat_alloc(int rows, int cols)
{
Mat matrice;
matrice.rows = rows;
matrice.cols = cols;
float** matrice= (float**)malloc((matrice.rows)*sizeof(float*));
for(int i = 0; i < matrice.cols; i++)
{
matrice[i] = (float*)malloc((matrice.cols)*sizeof(float));
}
matrice.row_ptrs = matrice;
return matrice;
}
Ich weiß, dass ich einige mistakes.Someone machen kann mir helfen, undestand, wie ich es tun kann?
Zuerst finden sie eine [gute Anfänger Buch] (http://stackoverflow.com/questions/562303/the -definitive-c-book-guide-and-list) und lernen, Funktionen aufzurufen. Dann lese weiter die Bücher und lerne über * scopes * und was mit lokalen Variablen passiert, sobald die Funktion, in der sie definiert wurden, zurückkehrt. –
Hinweis: Code wird eventuell mit einem Begleiter benötigt 'Mat_free (Mat *);' – chux
Es gibt keine Matrix (auch bekannt als 2D-Array) in Ihrem Code und nichts, was als ein verwendet werden kann. Ein Zeiger ist kein Array und umgekehrt. – Olaf