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

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

我不了解的是如何遍历分配的内存块以对其进行排序。我的教授提到的这是什么?如果您可以阐明如何使用它?我不想发布我的代码以避免作弊。谢谢!

最佳答案

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 =%d\n",x,ptr[x]);// and printing its content
                                         // x is the index in range from
                                         // 0 to count_of_item-1.


遍历已分配的内存块,正在访问其内容以便对其进行读取或更改(写)。
这是“ c”的基础知识,如果您被困在这里,就会遇到麻烦。

10-04 18:20