C 如何定义一个未知长度的数组

嗯确切可以这么做这在法度榜样中叫做动态数组或者数组的动态扩大其道理就是声明一种类型的指针然后在定义的时刻给它赋数组的大年夜小... 嗯 确切可以这么做这在法度榜样中叫做动态数组或者数组的动态扩大其道理就是声明一种类型的指针然后在定义的时刻给它赋数组的大年夜小 展开
 我来答
小枫看法
高粉答主

推荐于2018-03-01 · 关注最新生活,身边事,好精彩。
小枫看法
采纳数:4018 获赞数:180093

向TA提问 私信TA
展开全部
定义一个未知长度的数组的方法:

一是用VLA可变长数组,例如:
int i = 10, j = 20;
double a[i][j]; //定义VLA
VLA要c99才开始支持,需要使用c99编译器,例如gcc

二是使用动态数组,例如:
int m = 10, n = 20;
.........
double **p = ( double** )malloc( 10 * sizeof( double* ) );
for( i = 0; i < 20; ++i )
p[i] = ( double* )malloc( 20 * sizeof( double ) );
..........
p[5][6] = 20.68;
沧海雄风2009
2021-09-03 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8525
采纳率:79%
帮助的人:2867万
展开全部
应该是问的 变长数组

像这样

int n;

scanf("%d",&n);

char buff[n];

C99支持  这种分配在栈上,大小很有限,而且移植兼容性都很差,不建议这么用


还有另一种比较小的可能,楼主问的动态数组?

#include <stdio.h>
#include <malloc.h>

int main()
{
    int *a=NULL,n=0;
    scanf("%d",&n);
    a = (int *)malloc(sizeof(int)*n);
    这里a就是指向了一个十个int大小的动态申请的内存
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-20
展开全部
随便以一种类型名为例如int
int * a;
a=new int [X];
int 为类型名,a为指针(数组)名,X为数组长度
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式