动态内存分配和动态数组

时间:2011-12-12 21:35:05

标签: c

我需要编写一个程序,它会要求用户输入他们想要输入多少个int的数量..所以输出看起来像

输入Ints数(必须大于1)

他们会在2 - 无穷大之间输入一个数字(如果他们真的想走那么远的话)

此时我将扫描该数字并将其设置为变量

现在有了这个号码,我想运行一个for循环来让他们开始输入他们的Ints

for (count = 0; count < numofInts; count++)
{
    printf("    Enter an integer: ");
   scanf("%d", &Number);
}

我遇到的问题是我需要确保它记录了他们输入的每个数字,所以我需要将这些值存储到数组中,但是数组的元素数量必须是动态的,这样它才能改变取决于numofInts,我应该使用Malloc()来创建一个动态内存分配空间,我明白它创建了一个变量,其内存空间是我设置的malloc,但我不知道如何将一系列变量存储到该空间,然后根据需要调用它们。

程序的最终结果应该是123456789这样的数字,并循环存储整数的数字作为“最大”的int,然后吐出哪个int是最大的,所以像x = 1234567890,x %10,x = 0,最大= x,x / 10,x%10,x = 9,如果x> 1。最大,最大= x,并且只循环直到它循环整个数字,并在最后存储该数字。我有那个部分,但因为我必须采取一系列数字并为所有这些数字运行此循环,我需要能够存储和调用这些值并将它们放在循环中以便能够存储最大的这些数字的数字

任何有关此问题的帮助将不胜感激,我只是无法弄清楚如何使用malloc或创建动态数组,我在线阅读或从youtube上观看的大部分教程都是关于C ++的,我需要只用C做这个......

http://pastebin.com/PZyvEQ4J

到目前为止我有什么

2 个答案:

答案 0 :(得分:2)

阅读numInts后,您可以像这样分配数组:

int* arr = malloc(numInts*sizeof(int));

现在使用现有函数填充数组,并将读取的值分配给数组。

我不打算给你一个完整的解决方案,因为这是功课并没有帮助你,但你使用i运算符访问数组的[]'元素:

arr[i];

答案 1 :(得分:0)

详细了解指针和calloc