00问答网
所有问题
C语言中,定义动态数组
如题,想先随意输入一串数,然后根据输入好的数的大小再定义数组大小。请问能用方法实现吗?目前我只会用malloc函数,先定义N再定义A[N]。
举报该问题
推荐答案 2009-03-29
这样不断地malloc太浪费时间了。
可以参考常用一个库设计方法,就是先分配一定空间的内存给数组,然后当这个空间不够的时候,再动态分配之前空间的两倍出来,然后把数组拷贝到新地址。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://00.wendadaohang.com/zd/IDeBTZBT.html
其他回答
第1个回答 2009-03-29
用malloc 麻烦
可以先暴力定义个数组。
如:int i,N,a[10000];
scanf("%d",&N);
for(i=0;i<N;i++)
............
第2个回答 2019-02-19
c99中有动态数组,例如
int
n;
scanf("%d",
&n);
int
array[n];
c89不能这么用
c++可以用vector
#include
using
std::vector;
vector
array;
相似回答
c语言中动态数组
的
定义
怎么做啊!
答:
对一位
数组,
不知道数组大小可以这样做:int *a;int i,n;scanf("%d",&n);a=(int *)malloc(n*sizeof(int));这样就相当于C++的
定义
:int n;int a[n];cin>>n;对2位数组操作如下:int **a;int i,m,n;scanf("%d %d",&m,&n);a=(int **)malloc(m*sizepf(int *));for (i=0;...
C语言中
如何
定义动态
二维
数组
并输出
答:
scanf("%d",&p[i][j]);//输入第i行第j列的数据。其中&p[i][j]也可以写作p[i]+j或者是*(p+i)+j.功能相同。printf("输入的
数组
为%d行%d列:\n",m,n);for(i=0;i<m;i++){ for(j=0;j<n;j++)//这个循环可以输出一行元素。printf("%d",p[i][j]);//输出i行j列的元素...
C语言定义数组
行列数的问题
答:
同学你好,我也遇到过这样的问题,
数组定义
时,行列数不能用变量。 但是, 我们可以
动态
创建一个二维数组。你可以这样做:(以int型为例)int **a;int m,n,i;scanf("%d%d",&m,&n); //输入你此次想要创建数组的行数和列数,储存在m和n中 a=(int**)malloc(m*sizeof(int*)); ...
C语言中
怎样
定义动态
一维
数组
答:
在
C语言中,
数组的
定义
都是固定长度的,长度不允许变化。可以通过链表的方式来达到定义”
动态数组
“的等价功能,举例如下:链表节点定义如下:struct node{ int data; // 数据域 struct node *next; // 指针域};存放数据时可以对节点中的node赋值即可,如:struct node *p; // 定义一个链...
大家正在搜
c语言中如何定义动态数组
C语言定义double型数组
c语言数组怎么定义
c语言定义数组并赋值
c语言定义数组的格式
c语言定义字符数组
c语言定义一个字符串数组
c语言字符串数组定义
c语言数组不定义长度
相关问题
C语言如何定义动态数组
c语言中动态数组的定义怎么做啊!
C语言中怎样定义动态一维数组
c语言中如何定义动态指针数组
C语言中如何定义动态二维数组并输出
C语言中怎么定义动态的数组长度
C语言中怎么定义动态的数组长度?
请教在C语言中如何定义三维动态数组