黄鼠狼坐飞机歇后语:关于c语言编程

来源:百度文库 编辑:中科新闻网 时间:2024/05/04 06:41:25
如果我需要一个全局变量的数组,数组大小要由main函数中手动输入得到,我改如何实现呢?
动态数组是怎么回事?如何实现?

只能是用链表实现了,数组是没有办法的.

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

char *str;

int main(int argc, char* argv[])
{
int length;
printf("input the length of array:\n");
scanf("%d",&length);
str=(char *)malloc(length);
getchar();

for(int i=0;i<length;i++)
{
printf("input the value of array%d:\n",i+1);
scanf("%c",&str[i]);
getchar();
}
printf("the array is :\n");
for(i=0;i<length;i++)
printf("%c\t",str[i]);
free(str);
return 0;
}

用指针
int *a = 0;
main()
{
int len;
scanf("%d",&len);
a = (int*)malloc(sizeof(int));
//...使用数组a的语句
free(a);
return 0;
}

别费神了,C语言中是没有动态数组的。只能在C++中才能实现。
所谓的动态数组,是指数组的元素个数可以在程序运行过程中才设定。

用链表啊!
当然也可以用动态数组了!

为什么不在main函数的外面把数组的大小设置成一个常数,利用宏来实现呢
\

如果是象你说的那样,应该动态的分配数组的大小,好象用malloc函数来实现