我已经对 stackoverflow 上的结构分配内存进行了一些研究,而我发现的答案对我不起作用。话虽如此,这是我的问题和问题。在大多数情况下,他们中的大多数人的代码与我目前拥有的代码相同。尽管我的编译器给了我一个错误。
问题:我想为 Struct(结构数组)而不是 Pointer(指向结构的指针)分配内存。下面是我的结构的定义。
#define INIT_MEMO_SIZE
typedef struct Memo
{
struct HugeInteger *F;
int length;
}Memo;
所需的解决方案:在备忘录结构中,我想动态分配一个 INIT_MEMO_SIZE 数量的巨大整数结构的数组
尝试的解决方案:在“malloc”的右下方我收到一条错误消息,指出“错误:'void *' 类型的实体不能用于初始化'HugeInteger *'类型的实体,这用红色强调了关键字“malloc”。编译器正在使用的是 Microsoft Visual Studio 2012
// Creates and initializes a Memo Struct
Memo *createMemo(void)
{
HugeInteger *ptr = malloc(sizeof(HugeInteger) * INIT_MEMO_SIZE);
if(ptr == NULL)
return NULL;
} // End of *createMemo
问题:我做错了什么或者分配结构数组的正确方法是什么?