如何指向堆内存中的特定地址?

问题描述 投票:0回答:1

所以,我正在做我的作业,但我完全无法解决这个问题。我是动态内存分配的新手,需要帮助理解它。

所以,堆内存是随机的。如果我使用 malloc,比如在循环或递归函数中,我将如何获得指向第一次执行 malloc 时创建的内存的指针?

问题要求我分配内存,存储学生姓名,并输入一个整数。如果输入的整数为 1,则函数回调自身并重复该步骤。如果为 0,则该函数返回指向第一个学生的指针。这就是我的代码崩溃的地方。我只能让它将指针返回到最后一个学生,即最后一次执行 malloc 时。我想过使用 realloc 来代替,但我仍然找不到一种方法来指向第一件事。这个问题可能真的很微不足道,但我认为我还不太理解这个话题。请帮忙。

this is the code, it prints only the name of the last entered student

these are the test cases

this is the question

我尝试让指针指向分配的第一个内存,并且我希望我的代码打印到所有名称。

c pointers recursion malloc structure
1个回答
0
投票

我不会为你回答测试问题,但我有一些建议。

首先这个问题不太正确。您已经从

malloc
的返回值中获得了指向堆内存的指针。这个问题是关于链表的。

在递归函数中:

  • 参数是指向前一个的指针
  • 分配结构体
  • 以前的学生指向新学生
  • 输入姓名
  • 输入是否创建另一个学生
  • 如果第二个输入为1,则调用递归函数

studentList 不应该是递归函数。

这将为您提供一个开始。这并不完整。这是一道测试题。

© www.soinside.com 2019 - 2024. All rights reserved.