【发布时间】:2013-04-16 11:34:02
【问题描述】:
首先我希望用户输入所需数组的大小。 所以我正在使用:
int size;
scanf("&d",&size);
现在我想使用指针和 malloc 函数创建一个整数数组。 这就是我所做的:
int *p1 = (int*)malloc(sizeof(int)*size);
据我了解,这就像使用:
int p1[size];
但是如何像数组一样使用它呢?
问题 1: 现在我希望用户输入与他写入这个“数组”一样多的整数。 但是我不能使用 p[0] 因为它不是一个数组,它是一个指针。
问题 2: 我想将此数组“发送”到一个获取整数数组的函数。 再说一遍,这不是一个数组,我怎么能把它“给”给函数呢?
【问题讨论】:
-
是否 scanf("%d",&p1[0]);给你任何错误?这应该工作
-
提示:一个指针保存一个地址,它是
scanf()需要用于slurping 数据的地址。所以..scanf("%d", p1+n),其中n是正在读取的元素。 -
请注意,除非您的编译器是古老的,否则没有什么能阻止您将数组声明为
int p1[size];,其中 size 具有在运行时分配的值。
标签: c arrays pointers malloc ansi