警告C4020:' CreateVertex' :实际参数太多了

时间:2014-04-10 17:50:49

标签: visual-c++

警告说什么? 我在代码中找不到任何拼写错误或多余的字符。:

if (!(connectedComp = (Vertex**)malloc(sizeof(Vertex*)))) {
    AllocationError();
}
if (!(created = (unsigned int*)malloc(sizeof(unsigned int)))) {
    AllocationError();
}

connectedComp[++counter] = CreateVertex(id, edgesMatrix, maxValue, created);

我宣布了

Vertex** connectedComp = NULL;

,函数签名为:

Vertex* CreateVertex(unsigned int id, unsigned int** edgesMatrix, unsigned int maxValue);

提前致谢,

2 个答案:

答案 0 :(得分:0)

CreateVertex的函数原型有3个参数,你试图发送4.这是警告

答案 1 :(得分:0)

你的功能签名是

Vertex* CreateVertex(unsigned int id, unsigned int** edgesMatrix, unsigned int maxValue);

你传递了4个参数。这是问题,因此编译器提供以下编译错误

connectedComp[++counter] = CreateVertex(id, edgesMatrix, maxValue, created);

通过查看您的代码,您的电话应该是

connectedComp [++ counter] = CreateVertex(id,edgesMatrix,maxValue);

顺便说一下,你应该避免在C ++中使用malloc / free而不是使用new / delete或smart_pointer机制。