c++ - 类型 "void *"的值不能分配给类型 "RANDOMSTRUCT *"的实体

标签 c++ c

所以我在 void 中研究 malloc。我有一个代码:


    int iInitRandomPhaseArrays(WS_ELEMENT *Aufbau, RANDOMSTRUCT **random)
{
    WS_ELEMENT *Act;
    int iCounter = 0, i;
    RANDOMSTRUCT *dummy;

    Act = Aufbau;

    if (*random != NULL)
        return -1;

    while (Act != NULL)
    {
        if (Act->operation == Linsenarray)
            iCounter++;
        Act = Act->pNext;
    }
    if (iCounter)
    {
        dummy = malloc(iCounter * sizeof(random));

        ran1_3ARG(&ran1_idum, &ran1_iy, ran1_iv);
        dummy[0].idum = ran1_idum;
        dummy[0].iy = ran1_iy;
        memcpy(dummy[0].iv, ran1_iv, sizeof(ran1_iv));

        for (i = 0; i < iCounter; i++)
            ran1_3ARG(&dummy[i].idum, &dummy[i].iy, dummy[i].iv);
        dummy[0].Anzahl = iCounter;
        *random = dummy;
    }



    return iCounter;
}

此处错误:

不能将“void *”类型的值分配给“RANDOMSTRUCT *”类型的实体

谁能帮我解决一下?

最佳答案

改变行:

dummy = malloc(iCounter * sizeof(random));

说:

dummy = (RANDOMSTRUCT *)malloc(iCounter * sizeof(RANDOMSTRUCT));

关于c++ - 类型 "void *"的值不能分配给类型 "RANDOMSTRUCT *"的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59216011/

相关文章:

c++ - 我怎么知道一个项目是不是MFC应用程序

c - 是否可以在ncurses库中绘制如下图表并实时更新?

c - 总是说段错误,不知道应该在哪里修复

c - 如何在文件末尾添加 2 字节 CRC

php - 我可以安排来自 Apache 的 HTTP 请求吗?

c++ - 如何创建用户定义类型模板类对象 C++

c++ - 如何加快从流到内存的读取行?

c++ - 未显示 MFC CMenu 工具提示

c++ - 具有单一生产者单一消费者的无锁循环缓冲区

c++ - PyModule_AddObject 崩溃