求助一个C语言里动态内存分配一个一维数组的问题

2024-11-29 02:36:23
推荐回答(3个)
回答1:

#include 
#include 
int main(void)
{
 int len;
 int *p =0;
 int i;
 printf("请输入您要决定该数组元素的个数:");
 scanf ("%d", &len);
 p =(int *)malloc(sizeof(int) * len);//申请内存空间要放在这里,int不一定都是4字节
 printf("请输入每个数组元素的值:");
 for(i=0; i {
  scanf ("%d", &p[i]);
 }
 for(i=0; i {
  printf ("p[%d]= %d\n", i, p[i]); // <------------方括号里面的是索引值
 } 
 free(p); // <--------------记住要释放,养成好习惯
 return 0;
}

这才是你想要的效果

回答2:

#include 
#include 

int main(void) {
int len;
int *p
int i;

printf("请输入您要决定该数组元素的个数:");
scanf ("%d", &len);
p = (int *)malloc(sizeof(int) * len); // 移到这儿就行了
printf("请输入每个数组元素的值:");
for(i = 0; i < len; i++) {
scanf ("%d", &p[i]);
}
for(i = 0; i < len; i++) {
printf ("p[i]= %d\n", p[i]); 
    }
return 0;
}

回答3:

#include
#include

int main(void)
{
int len,i;
printf("请输入您要决定该数组元素的个数:");
scanf ("%d", &len);
int *p = (int *)malloc(len);
printf("请输入每个数组元素的值:");

for(i=0; i {
scanf ("%d", &p[i]);
}
for(i=0; i {
printf ("p[i]= %d\n", p[i]);
}
return 0;
}