gpt4 book ai didi

c - 初始化并访问指针数组中的指针

转载 作者:行者123 更新时间:2023-11-30 16:04:41 26 4
gpt4 key购买 nike

假设我有以下内容:

void **Init(int numElems)
{
//What is the best way to initialize 'ptrElems' to store an array of void *'s?
void **ptrElems = malloc(numElems * sizeof(void *));
return ptrElems;
}

//What is the best way to return a pointer pointing at the index passed as a parameter?
void **GetPtr(void **ptrElems, int index)
{
void **elem = elems + (index * sizeof(void *));
return elem;
}

首先,初始化“ptrElems”来存储指针数组的最佳方法是什么?我使用 malloc 是因为将其分配给数组在函数结束后不会持续存在。

其次,指向指定索引处的指针的最佳方式是什么?我尝试对“GetPtr”函数的第一行进行类型转换以确保正确的指针算术,但我收到警告“从不兼容的指针类型进行初始化”。有必要打字吗?

最佳答案

初始化应该以这种方式进行,只需记住在完成后再次free()内存即可。

要获取特定元素的地址,您可以使用普通数组索引访问以及地址运算符&:

void **GetPtr(void **ptrElems, int index)
{
void **elem = &ptrElems[index];
return elem;
}

关于c - 初始化并访问指针数组中的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2718594/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com