簡體   English   中英

動態地為矩陣分配數組

[英]dynamically allocating an array for a matrix

所以我試圖分配一個數組來保存浮點數的矩陣。 傳入的值是整數(行和列),並且函數是指針。 所以這是我的函數定義:

float *matrix(int rows,int cols)
{
    int i=0;
    float *m=NULL;
    m=(float *)malloc(rows*sizeof(int));
    for (i=0;i<rows;i++)
    {
        m[i]=(float*)malloc(cols*sizeof(int));
    }   
}

我感覺這是錯誤的。 當我嘗試運行時,我也會收到錯誤消息。 問題到底在哪里? int應該是浮點數嗎?

編輯****

float *matrix(int rows,int cols)
{
    int i=0;
    float **m=NULL;
    m=(float *)malloc(rows*sizeof(float));
    for (i=0;i<rows;i++)
    {
        m[i]=(float *)malloc(cols*sizeof(float));
    }
}

好的,如果malloc無法正常運行並且失敗,我將不會返回NULL。 所以應該是這里的代碼,對吧?

if(m[i]==NULL)
{
    return NULL;
}
    int i=0;
    float **m; // You are looking for a pointer to pointer to float
    m=malloc(rows*sizeof(float*)); //Step1
    for (i=0;i<rows;i++)
    {
        m[i]=malloc(cols*sizeof(float)); //Step2
    }   

筆記

  1. 您不需要因為[this]答案中提到的原因而強制轉換malloc的輸出。
  2. 在步驟1中,為 float*分配內存
  3. 對於步驟1中的每個float* ,我們在步驟2中分配內存以存儲cols float s

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM