c - 如何在 c 中创建一个用于动态分配二维数组的函数?

标签 c

#include<stdio.h>
#include<stdlib.h>
void aloc_dinamic(double **M)
{
    int i;
    M = (double **)malloc(m*sizeof(double *));
        for(i=0;i<m;i++)
             M[i] = (double *)calloc(m, sizeof(double));
}
int main(void)
{
    double **H;
    aloc_dinamic(H)
}

如何在 C 中创建一个用于动态分配二维数组的函数?

我试过了,但没用。

最佳答案

#include <stdlib.h>

double ** aloc_dynamic( size_t n, size_t m )
{
    double **p = ( double ** )malloc( n * sizeof( double * ) );

    for ( size_t i = 0; i < n; i++ )
    {
        p[i] = ( double * )malloc( m * sizeof( double ) );
    }

    return p;
}

int main(void)
{
    size_t n = 5;
    size_t m = 10;

    double **p = aloc_dynamic( n, m );

    // before exiting the function free the allocated memory
}

关于c - 如何在 c 中创建一个用于动态分配二维数组的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23581470/

相关文章:

c - 1 除以非常大的数返回 0, C

c - 从给定数组中删除元素

c - 在 C 中处理管道

c - c文件操作中的段错误

c - gets() 的问题

Objective-C 与 C,哪一个是 Mac 上更好的语言?

c - 如何使弱链接与 GCC 一起工作?

c - 如何使用冒泡排序对二维数组进行排序?

c - strtol c 字符串函数

c - 为什么我的链表冒泡排序函数有时会输出错误的结果,有时又看起来像是无限循环?