我必須寫一個函數,該函數應該可以幫助我使用結構分配一個矩陣。我今天開始研究結構。 所以我寫了這個代碼與結構和相對主證明功能:我該如何分配一個帶結構的矩陣?
#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;
}
我知道我做一些mistakes.Someone能幫我已瞭解我該怎麼辦呢?
首先找到[好初學者的書(http://stackoverflow.com/questions/562303/the -definitive-c-book-guide-and-list)並學習如何調用函數。然後繼續閱讀書籍並瞭解*作用域*以及一旦函數返回時定義的函數會發生什麼。 –
注意:代碼最終需要伴隨'Mat_free(Mat *);' – chux
代碼中沒有矩陣(又稱二維數組),沒有任何可用作一個的矩陣。指針不是數組,反之亦然。 – Olaf