先由外部输入一个量,再以此作为长度定义一个数组,可以实现吗?怎样做?谢谢
å¯ä»¥ä½¿ç¨mallocå½æ°å®ç°ã
1 头æ件ï¼
stdlib.h
2 声æï¼
void *malloc(size_t length);
3 åè½ï¼
ç³è¯·ä¸æ®µé¿åº¦ä¸ºlengthåèçå å空é´ï¼å¹¶å°é¦å°åè¿åã
4 示ä¾ï¼
å¦å ç´ ç±»å为type,è¾å ¥çæ°ç»é¿åº¦åå¨åénä¸ï¼é£ä¹è¦ç³è¯·çæ°ç»æå 空é´ä¸ºsizeof(type)*nã
æ°ç»éè¦å®ä¹ä¸ºæéå½¢å¼
type *p;
ç³è¯·ä»£ç 为
p = (type*) malloc(sizeof(type)*n);
1 头æ件ï¼
stdlib.h
2 声æï¼
void *malloc(size_t length);
3 åè½ï¼
ç³è¯·ä¸æ®µé¿åº¦ä¸ºlengthåèçå å空é´ï¼å¹¶å°é¦å°åè¿åã
4 示ä¾ï¼
å¦å ç´ ç±»å为type,è¾å ¥çæ°ç»é¿åº¦åå¨åénä¸ï¼é£ä¹è¦ç³è¯·çæ°ç»æå 空é´ä¸ºsizeof(type)*nã
æ°ç»éè¦å®ä¹ä¸ºæéå½¢å¼
type *p;
ç³è¯·ä»£ç 为
p = (type*) malloc(sizeof(type)*n);
温馨提示:答案为网友推荐,仅供参考
第1个回答 2015-09-21
由外部输入长度的数组,
这句话的意思就是说数组内存是活动的,因此需要用calloc或者malloc
int main(){
char *str;
int size;
scanf("%d",&size);//外部输入长度
str = (char*)calloc(size,sizeof(char));
free(str);
}
这句话的意思就是说数组内存是活动的,因此需要用calloc或者malloc
int main(){
char *str;
int size;
scanf("%d",&size);//外部输入长度
str = (char*)calloc(size,sizeof(char));
free(str);
}
第2个回答 2005-11-25
int a[100];
main()
{int n,i;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
printf("%d",a[i]);
getch();}
先定义较大长度的数组,取其中部分来操作。
main()
{int n,i;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
printf("%d",a[i]);
getch();}
先定义较大长度的数组,取其中部分来操作。
第3个回答 2005-11-24
动态分配内存
#include<stdlib.h>
int main()
{
int n,*p;
int i;
printf("Please input the num:");//输入数组的长度
scanf("%d",&n);
p=(int *)malloc(sizeof(int)*n);//定义动态数组
printf("Please input the numbers:");
for(i=0;i<n;i++)
{
scanf("%d",p+i);
}
for(i=0;i<n;i++)
{
printf("%5d\n",p[i]);
}
getchar();
}本回答被提问者采纳
#include<stdlib.h>
int main()
{
int n,*p;
int i;
printf("Please input the num:");//输入数组的长度
scanf("%d",&n);
p=(int *)malloc(sizeof(int)*n);//定义动态数组
printf("Please input the numbers:");
for(i=0;i<n;i++)
{
scanf("%d",p+i);
}
for(i=0;i<n;i++)
{
printf("%5d\n",p[i]);
}
getchar();
}本回答被提问者采纳
第4个回答 2015-09-10
C99支持
使用动态内存分配