关键词:
有时候在创建数组之前,不知道具体几行或列(比如说,我们将数据库中的数据取出,知道列数,而行数是不确定的),这是我们需要动态创建数组:
两种方法:
1.转化为一维数组申请
2.先申请全部行首指针,再按行逐行申请
1.
a=(int *)malloc(sizeof(int),(unsigned)m*n);
使用的时候就和一般的二维数组一样。
举个例子给你:
#include "stdlib.h"
#include "stdio.h"
#include
int main()
{
int i,j;
int n;//这个就是需要指定的行数
int (*p)[10];
scanf("%d",&n);//取得行数
//动态生成二维数组,指定列数为10,如果想改,自己该里面
的参数,如果想定义n行2列就为: p=(int (*)[2])malloc(n*2*sizeof(int));
p=(int (*)[10])malloc(n*10*sizeof(int)); //动态申请n行10列的二维数组
for(i=0;i<n;i++)
{
for(j=0;j<10;j++)
{
p[i][j]=i*j;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<10;j++)
{
printf("%d",p[i][j]);
}
printf(" ");
}
free(p);
return 0;
}
2.
这个也给你举个例子吧:
#include
#include
main()
{
int i = 0;
int j = 0;
int line = 0;
int row = 0;
int **p = NULL;
printf("input the line of the array:
");
scanf("%d", &line);
printf("input the row of the array:
");
scanf("%d", &row);
p = (int **)malloc(sizeof(int *) * line);
if (NULL == p)
{
return;
}
for (i = 0; i < line; i++)
{
*(p + i) = (int *)malloc(sizeof(int) * row);
if (NULL == *(p + i))
{
return;
}
}
/*input data*/
for (i = 0; i < line; i++)
{
for(j = 0; j < row; j++)
{
p[i][j] = i + 1;
}
}
/*output data*/
for (i = 0; i < line; i++)
{
for(j = 0; j < row; j++)
{
printf("%d", p[i][j]);
}
}
/*free every line point*/
for (i = 0; i < line; i++)
{
free(*(p + i));
p[i] = NULL;
}
free(p);
p = NULL;
}
动态创建二维数组使用多少大小
】动态创建二维数组使用多少大小【英文标题】:Howmuchsizeisusedondynamicallycreatinga2darray【发布时间】:2019-01-2215:13:52【问题描述】:我想知道动态创建二维数组时分配了多少大小假设如果我在c++中动态创建一维数组,它会像int*p=ne... 查看详情
如何动态创建二维数组?
】如何动态创建二维数组?【英文标题】:HowcanIcreate2Darraydynamically?【发布时间】:2015-07-1505:34:21【问题描述】:我正在尝试创建二维数组,但出现错误。这是我的代码:varcleanArr:Array=newArray();for(vari:int=0;i<arr.length;i++)cleanArr[i][... 查看详情
java示例代码_创建动态二维数组[JAVA]
java示例代码_创建动态二维数组[JAVA] 查看详情
使用 ArrayList 创建一个动态二维整数数组
】使用ArrayList创建一个动态二维整数数组【英文标题】:UsinganArrayListtocreateadynamic2darrayofintegers【发布时间】:2019-02-2102:07:43【问题描述】:所以我试图为基数排序实现这个伪代码,但不明白如何创建一个二维ArrayList,这个代码... 查看详情
java示例代码_用java创建动态二维数组
java示例代码_用java创建动态二维数组 查看详情
nodejs动态创建二维码
<!--弹出二维码--><divclass="qrcode"><div><pid="saoma">扫描二维码</p></div></div>js代码:$.ajax({type:‘POST‘,url:‘/house‘,data:{data:‘你的数据‘},dataType:‘json‘,success:functio 查看详情
使用指针动态创建二维数组
】使用指针动态创建二维数组【英文标题】:Creatinga2Darraydynamicallyusingpointers【发布时间】:2021-03-2811:04:47【问题描述】://Tryingtocreate2Darraydynamicallyusingpointers#include<stdio.h>#include<malloc.h>intmain()int*pool,**pool2,r=3,c=4; 查看详情
在 C++ 中使用动态内存分配创建二维数组
】在C++中使用动态内存分配创建二维数组【英文标题】:Creatinga2DArrayusingdynamicmemoryallocationinC++【发布时间】:2021-12-2013:01:19【问题描述】:我正在尝试使用动态内存分配来实现二维数组。这是我的代码:#include<iostream>usingnam... 查看详情
在three.js中动态创建二维文本
】在three.js中动态创建二维文本【英文标题】:Dynamicallycreate2Dtextinthree.js【发布时间】:2013-02-2108:00:55【问题描述】:我有在three.js中创建的3D模型。根据一些数据,我想创建一组由小文本标签装饰的箭头。这些标签应该是二维的... 查看详情
一维动态数组和二维动态数组的创建和使用
...型是:(void*)calloc(unsignedn,unsignedsize)calloc()函数用于向系统动态申请n个,每一个占sizege字节的内存单元,函数返回值为所申请的内存空间首地址malloc和calloc主要差别在 查看详情
使用 C++ 创建大型二维动态数组时出现分段错误(核心转储)
】使用C++创建大型二维动态数组时出现分段错误(核心转储)【英文标题】:Segmentationfault(coredump)whencreatingalarge2ddynamicarrayusingc++【发布时间】:2019-03-3012:57:02【问题描述】:我正在尝试创建一个程序,该程序创建两个2d动态数组... 查看详情
malloc动态创建二维数组(c语言)(代码片段)
c语言用malloc动态创建二维数组#include<stdio.h>#include<stdlib.h>voidfun(intm,intn)//行数,列数 int**p=(int**)malloc(m*sizeof(int*)); inti,j; for(i=0;i<n;i++) p[i]=(int*)mall 查看详情
基于用户输入的二维动态阵列
】基于用户输入的二维动态阵列【英文标题】:2DDynamicArrayBasedonUserInput[duplicate]【发布时间】:2019-02-2010:36:36【问题描述】:场景:从文件中读取数字并相应地创建动态二维数组数据文件第一行代表房间,其余行代表房间人数例... 查看详情
在 C++ 中动态创建二维数组时出现问题。这是代码。它不适用于某些特定条件
】在C++中动态创建二维数组时出现问题。这是代码。它不适用于某些特定条件【英文标题】:Problemwhilecreating2DarraydynamicallyinC++.Hereisthecode.Itdosen\'tworkforsomespecificconditions【发布时间】:2021-07-0112:53:31【问题描述】:在我的以下代... 查看详情
使用二维码创建动态图像
<?php/* *byAlexDahlem *http://twitter.com/alexdahlem * *DynamicallycreatesanicepicturewithaQR-Codeonit * *Usethispngasbackground:http://twitpic.com/5ds1iz *Copythebackground.pnginthesamefolderasyourscript * *Youcanusethiscodeinanyprojectyouwant.Mention... 查看详情
算法——回文解密,判断一个素组是否为回文
...是回文案例:packagetest;/***@authordayu解密回文——栈*@version创建时间:2017年11月13日下午2:15:01*类说明*/publicclasszhan{//回文——一定有对称轴,所以一定是单数 查看详情
在 C++ 中初始化动态二维数组
】在C++中初始化动态二维数组【英文标题】:InitializingDynamic2darrayinc++【发布时间】:2020-10-3007:07:24【问题描述】:我已经创建了类和第一个构造函数,但是我不知道如何按照2中的要求将2d数组初始化为ref,需要使用动态内存分... 查看详情
指针对指针的动态二维数组
】指针对指针的动态二维数组【英文标题】:Pointer-to-pointerdynamictwo-dimensionalarray【发布时间】:2013-04-0618:40:03【问题描述】:这个网站上的第一个计时器,所以这里..我是C++的新手,目前正在阅读D.S.Malik的《使用C++第二版的数据... 查看详情