C 如何定义一个未知长度的数组
嗯确切可以这么做这在法度榜样中叫做动态数组或者数组的动态扩大其道理就是声明一种类型的指针然后在定义的时刻给它赋数组的大年夜小...
嗯 确切可以这么做这在法度榜样中叫做动态数组或者数组的动态扩大其道理就是声明一种类型的指针然后在定义的时刻给它赋数组的大年夜小
展开
3个回答
展开全部
定义一个未知长度的数组的方法:
一是用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;
一是用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;
展开全部
应该是问的 变长数组
像这样
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为数组长度
int * a;
a=new int [X];
int 为类型名,a为指针(数组)名,X为数组长度
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询