动态数组创建

来源:互联网 发布:qt编程入门视频教程 编辑:程序博客网 时间:2024/06/05 19:26

一般的数组创建的时候必须是常量,这就造成了一些问题

比如说,我想在程序执行的时候输入二维数组的第一维为4,第二维为5,或者其他的,如果直接在程序中定义了数组的大小,有的时候数组太大浪费空间,有的时候空间又不够,这个头疼的问题

用c++创建动态数组就可以解决了,下边是c++的代码

#include<iostream>using namespace std;int main() {cout << "请输入矩阵行列数字m n:"<< endl;int m, n;cin >> m >> n;int **a = new int *[m];for (int i = 0; i < m; i++)a[i] = new int[n];cout << "请按行优先顺序输入数组元素:" << endl;for (int i = 0; i < m; i++)for (int j = 0; j < n; j++)cin >> a[i][j];cout << "输出:" << endl;for (int i = 0; i < m; i++) {cout << endl;for (int j = 0; j < n; j++)cout << a[i][j]<<" ";}return 0;}

精华在于此三行

int **a = new int *[m];
    for (int i = 0; i < m; i++)
        a[i] = new int[n];

就是这个格式

删除的话

for(int i=0;i<m;i++)

    delete[] a[i];

delete [] a;


另外,这是C语言的实现

int **p;p = (int**)malloc(size*sizeof(int*));int i;for ( i = 0; i < size; i++ ){*p = (int *) malloc( size2*sizeof(int) );}

删除如下

for(i=0;i<size;i++)   free(p[i]);free(p);

另外,需要加上头文件:

#include<stdlib.h>

很像的,对不对。











0 0
原创粉丝点击