程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了尝试使用数组结构时出现 LNK2019 错误?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决尝试使用数组结构时出现 LNK2019 错误??

开发过程中遇到尝试使用数组结构时出现 LNK2019 错误?的问题如何解决?下面主要结合日常开发的经验,给出你关于尝试使用数组结构时出现 LNK2019 错误?的解决方法建议,希望对你解决尝试使用数组结构时出现 LNK2019 错误?有所启发或帮助;

我试图包含矩形的坐标以便与它们交互,我为此创建了两个结构,一个用于 x 和 y 的 vec2 以及一个具有两个起点和终点的字段。如果我现在尝试使用它,我会收到错误:

@H_164_2@main.obj : error LNK2019: 对函数“_wWinMain@16”中未解析的外部符号“_map”的引用。

使用它的代码:

FIEld map[];

int WINAPI wWinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PWSTR pCmdline,int nCmdshow) 
{
    //win32 stuff
    for (int i = 0,z = 0; i < rowLength; i++)
    {
        for (int j = 0; j < (int)(rowLength * 0.9); j++)
        {
            FIEld temp = { {(int)((startPos.x + 150 * j) * scalE),(int)((startPos.y + 150 * i) * scalE)},{(int)(((startPos.x + 145) + 150 * j) * scalE),(int)(((startPos.y + 145) + 150 * i) * scalE)} };
            map[z] = temp;
            z++;
        }
    }
    //more win32 stuff
}

结构:

typedef struct
{
    float x;
    float y;
}vec2;

typedef struct
{
    vec2 startPos;
    vec2 endPos;
}FIEld;

如果我尝试给出数组长度,则会发生此错误:

@H_164_2@main.c(13):错误 C2057:需要常量表达式

@H_164_2@main.c(13):错误 C2466:无法分配常量大小为 0 的数组。

解决方法

正如@kaylum 所说,微软编译器不支持可变长度数组。 如果在编译阶段已知,请尝试以下代码:

const int rowLength = 10;
Field map[rowLength];

否则,在运行时使用 malloc:

Field* map = (Field*)malloc(rowLength * sizeof(Field));

大佬总结

以上是大佬教程为你收集整理的尝试使用数组结构时出现 LNK2019 错误?全部内容,希望文章能够帮你解决尝试使用数组结构时出现 LNK2019 错误?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:错误?