【C语言】 动态开辟二维数组

#include <stdio.h>
#include <stdlib.h>

int main()
{

//int arr[3][4];

int **arr = (int**)malloc(sizeof(int*) * 3);
int i = 0;
int j = 0;
int k = 1;
for(i = 0;i<3;i++)
{
	arr[i] = (int *)malloc(sizeof(int) * 4);
//  memset(arr[i],1,(sizeof(int)*4));
}
 for(i = 0;i<3;i++)
 {
    for(j = 0;j<4;j++)
    {
	arr[i][j] = k;
	k++;
	printf("arr[%d][[%d]=%d\n",i,j,arr[i][j]);
    }
 }
 //printf("\n");
   for(i = 0;i<3;i++)
   {
     free(arr[i]);
   }
 free(arr);
 return 0;
 }
时间: 2024-10-31 09:13:05

【C语言】 动态开辟二维数组的相关文章

一句话动态开辟二维数组

#include<iostream> using namespace std; //动态开辟int p[4][5]数组 void main() { //为了验证正确性,我们先把开辟的一维数组赋值给 pp int *pp=new int[20]; int i=0,j=0; for(i=0;i<20;i++)//为一维数组中每一个元素赋值,并输出该元素地址 { pp[i]=i; cout<<&(pp[i])<<" ";//即 pp+i }

转:用STL中的vector动态开辟二维数组

用STL中的vector动态开辟二维数组 源代码:#include <iostream>#include <vector>using namespace std;int main(){ int m, //行数     n; //列数 cout << "input value for m,n:"; cin>>m>>n;  //注意下面这一行:vector<int后两个">"之间要有空格!否则会被认

C语言 动态创建二维数组

/*C语言 如何动态创建二维数组 转化为一维数组申请数组,创建和释放都比较简单 */ #include <stdlib.h> #include <stdio.h> #include <malloc.h> #define RANK 10 #define COLUMN 7 int main() { int i,j; int (*p)[COLUMN]; //动态生成二维数组,指定列数为COLUMN,如果想改,自己该里面 //的参数,如果想定义n行2列就为: p=(int (*

[ 1001] 动态开辟二维数组的说明

开辟二维数组的说明 图解  [1][][][][] [2][][][][] [3][][][][] void main() { int i,j; /*注意申请的指针格式  先创建的是1,2,3首地址为指向指针的指针a来代表 1,2,3所在地址*/ int **a = (int **) malloc(sizeof(int *) * 3); /* 循环创建了3个 1*4的数组 并将首地址给了 1,2,3的位置上*/ for (j=0;j<3;j++) { a[j] = (int *) malloc(

【C++】动态开辟二维数组

二维数组在内存中的分配例如以下: C方式呈现: <span style="font-size:18px;"> #include <iostream> using namespace std; #define ROW 3 #define COL 4 void main() { int **p = (int **)malloc(sizeof(int*)*ROW); for(int i=0; i<ROW; ++i) { p[i] = (int *)malloc(

C++中动态申请二维数组并释放方法

C/C++中动态开辟一维.二维数组是非常常用的,以前没记住,做题时怎么也想不起来,现在好好整理一下. C++中有三种方法来动态申请多维数组 (1)C中的malloc/free (2)C++中的new/delete (3)STL容器中的vector 下面逐一介绍: 第一种:malloc/free 1.动态开辟一维数组 [cpp] view plaincopy //动态开辟一维数组 void dynamicCreate1Array() { int m; int i; int *p; printf("

【C语言】动态创建二维数组

//动态创建二维数组 #include <stdio.h> #include <stdlib.h> #include <malloc.h> int main() { int i,j; int n,m; //以n行5列为例 int (*p)[5]; printf("请输入行数:"); scanf("%d",&n); p=(int(*)[5])malloc(5*n*sizeof(int)); for(i=0;i<n;i+

动态创建二维数组

vector创建二维数组 初始化二维数组 vector<vector <int> > ivec(n ,vector<int>(m)); //n*m的二维vector vector<vector <int> > ivec(n , vector<int>(m, 0)); //n*m的二维vector,所有元素为0 动态创建m*n的二维 方法一: vector<vector <int> > ivec; ivec.re

C++动态申请二维数组与拷贝构造函数

一.C++动态申请二维数组 在C++中不能直接动态申请二维数组,经过一番搜索,发现一种动态申请二维数组较好的方法. 代码如下(MATRIX_TYPE为某一种类型,Lines和Columns): MATRIX_TYPE** elem; //C++二维矩阵动态申请空间 elem = new MATRIX_TYPE*[Lines]; elem[0] = new MATRIX_TYPE[Lines * Columns]; for(int i = 1; i < Lines; i++) elem[i] =