c - 如何访问锁定在双指针后面的对象?(C)
问题描述
在家庭作业中,我必须访问位于结构中的对象细节(即 pID、代码)。但是,我需要首先将我的函数与对象链接(**ppObjects),但由于我正在处理双指针,我似乎遇到了问题。值得注意的是,当我尝试相同的命令但函数是 PrintNewObject(HeaderC* pStruct4) 时,它运行良好 - 所以我猜这是我在处理 pStruct4 时必须使用双指针的问题。
我提供了我在下面尝试过的代码。在编译它时没有显示错误,但是在尝试从中打印一些东西时,它说 obj 是一个空指针。
我想与 ppObjects 链接的函数。
int InsertNewObject(HeaderC** pStruct4){
HeaderC* testinH;
for (testinH = *pStruct4; testinH != NULL; testinH = testinH->pNext)
{
int count = 0;
while (count < 26) //one for every letter in the alphabet, as ppObjects is an array
{
Object9* obj;
obj = (Object9*)testinH->ppObjects[count]; //the line that does not seem to properly define
printf("%lu", obj->Code); //running this line crashes my program
count++;
}
}
Header,在这里我们可以看到 ppObjects 是一个双指针。
typedef struct headc
{
void **ppObjects; // Pointer to the array of pointers to objects.
// Objects may be of types Object1-10
char cBegin; // The first letter of ID of objects related to
// header is cBegin.
struct headc *pNext;
} HeaderC;
我在 hometask 中提供的对象如下。这是我在定义后可以访问的
typedef struct ob9
{
char *pID;
unsigned long int Code;
Date3 *pDate3;
struct ob9 *pNext;
} Object9;
当我尝试从 obj 打印任何内容时,我收到一条错误消息,指出 obj 是空指针。
如果这措辞不好,我很抱歉。我尽我最大的努力使这可以理解,但不会太长。任何帮助表示赞赏!
解决方案
推荐阅读
- ruby-on-rails - 通过 API 编辑 Google 日历事件符合带有外部链接的 URI
- angular - 如何在无限滚动功能中获取搜索栏的值
- python - 修复超过 180 度限制的二面角以创建平滑曲线
- java - 我使用了 Jersey bean 验证,我已经传递了一条消息,根据一些文章,如果验证失败,该消息应该显示该消息
- android - Android 公共资源作为具有模块化结构的 Android 应用程序的库
- .net - MS Graph UserPrincipalName 与 OID 返回
- github - 引用 Github Actions 构建的工件
- rust - Rust 中的“静态不能评估析构函数”
- c# - 无法使用 SOAP 服务
- tableau-api - 通过 Tableau Server 从 Tableau Desktop 访问非公共 PostgreSQL 数据库