如何在C中迭代内存块(用malloc创建)



我的目标是从文本文件中读取未知数量的整数,将它们存储到一个内存块中,对它们进行排序,然后输出到一个新文件。我有一个程序可以从文件中读取整数并输出它们,现在我要实现排序部分。我是带着艺术背景来上这门课的,但我不太清楚教授如何使用它。

指令:使用malloc()将内存块分配给整型指针。然后,每次从输入文件中读取一个新的整数并且当前内存块不足以容纳它时,使用realloc()为内存块分配更多空间以容纳更多整数。您可以使用*(ptr+x)(一种等效的方法是使用ptr[x])访问由整数指针ptr指向的内存块中的第(x+1)个整数。然后你可以应用你在之前的课程中学到的任何排序算法(例如,选择排序或冒泡排序)来对这些整数排序。

我不理解的是如何通过分配的内存块进行迭代,以便对其进行排序。教授提到的这个x是什么?你能解释一下这个怎么用吗?我不想发布我的代码以避免作弊。谢谢!

int x;   // uninitialized variable (its content is unknown)
int count_of_item = 10 ; // initialized variable
int *ptr=malloc(count_of_item*sizeof(int)); // ptr is an allocated memory block
for(x=0;x<count_of_item;x++) // iterating through the memory block
    printf("%x element =%dn",x,ptr[x]);// and printing its content
                                         // x is the index in range from
                                         // 0 to count_of_item-1.

遍历一个已分配的内存块,访问它的内容是为了读它或对它进行修改(写)。

如果你被困在这里,你就有麻烦了。

相关内容

  • 没有找到相关文章