C++中动态申请二维数组

来源:互联网 发布:淘宝九宫格在线制作 编辑:程序博客网 时间:2024/06/02 03:12

今天有同门问到这个问题,写出来代码,进行记录。

使用new运算符进行动态申请:

#include <iostream>using namespace std;void createArray(int size_m, int size_n){float **arr = new float *[size_m];for (int i = 0; i < size_m; i++){arr[i] =new float[size_n];for (int j = 0; j <size_n; j++){arr[i][j] = (float)((i + 1) * 10 + j + 1);cout<<arr[i][j]<<" ";}cout<<endl;}        //释放内存空间        for (int i = 0; i < size_m; i++){delete [] arr[i];}delete [] arr;}int main(){int size_m = 4;//行数int size_n = 5;//列数createArray(size_m, size_n);return 0;}
运行结果如下:

使用malloc函数进行申请(C语言版本的)

#include <iostream>using namespace std;void createArray(int size_m, int size_n){float **arr = (float **)malloc(sizeof(float) * size_m);for (int i = 0; i < size_m; i++){arr[i] = (float *)malloc(sizeof(float) * size_n);for (int j = 0; j <size_n; j++){arr[i][j] = (float)((i + 1) * 10 + j + 1);cout<<arr[i][j]<<" ";}cout<<endl;}for (int i = 0; i < size_m; i++){free(arr[i]);}free(arr);}int main(){int size_m = 4;int size_n = 5;createArray(size_m, size_n);return 0;}



0 0