c语言中如何自定义数组长度

[复制链接]
查看11 | 回复5 | 2017-10-2 20:33:44 | 显示全部楼层 |阅读模式
我想让用户自己来输入需要多少个数,怎样定义数组,来达到这样的效果?
因为数组长度不能用未知数,所以不知道该怎么实现。
请达人帮忙~~ 谢谢!

回复

使用道具 举报

千问 | 2017-10-2 20:33:44 | 显示全部楼层
动态分配的数组可以自定义数组的长度,示例如下:#include #include #include int main(){printf("输入要分配的内存大小:");int size;scanf("%d", &size);//输入自定义的数组长度int *pstart = (int *)malloc(sizeof(int) *size);if (pstart==0) {printf("不能分配内存\n");return 0;}memset(pstart...
回复

使用道具 举报

千问 | 2017-10-2 20:33:44 | 显示全部楼层
C99标准支持不定长数组(代价是不能用goto语句)。在输入语句后声明就可以了。不过现在的编译器对C99的支持都不好```对于ANSI C(C89)一般的编译器都支持。不过数组长度必须是编译期确定的常量,运行时不能改变。所以采用动态分配实现。例如#include#include/*这个头文件在用mal...
回复

使用道具 举报

千问 | 2017-10-2 20:33:44 | 显示全部楼层
采用动态分配即可实现,例如: #include using namespace std; void main() { int* pArray = NULL; //动态数组 int N; // 动态确定的数组个数 cout << "Please input the number of element in t...
回复

使用道具 举报

千问 | 2017-10-2 20:33:44 | 显示全部楼层
数组不能在方括号中用变量来表示元素的个数, 但是可以是符号常数或常量表达式。例如:
#define FD 5
main()
{
int a[3+2],b[7+FD];
……}是合法的。但是下述说明方式是错误的。
main()
{ ...
回复

使用道具 举报

千问 | 2017-10-2 20:33:44 | 显示全部楼层
int *p=NULL,n;printf("Please input the num of elements:\n");scanf("%d",&n);p=(int *)malloc(n*sizeof(int));if(!p)printf("Memory is not accessed!\n")else{/*...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行