未调用 C++ 函数

c++ function isn't being called

本文关键字:函数 C++ 调用      更新时间:2023-10-16

,所以这就是我的函数声明的样子:

void mdump(char* startAdrs, char* endAdrs);

在我的代码中,这是我称之为:

char f = 'f';
char d[200*sizeof(int)];
mdump(&d, &f);

我遇到的错误是:

无效的参数的候选人是:void mdump(char*,char*('

为什么我无法正确调用Mdump功能?

使用

mdump(&d, &f);

是编译器错误,因为&d评估了char (*)[200*sizeof(int)]。那不能转换为char*

您可以使用

mdump(d, &f);

要克服编译器错误。但是,从mdump的参数的名称来看,第二个参数需要为d+sizeof(d)

mdump(d, d+sizeof(d));

您不应该传递d的地址,因为d已经充当指向第一个元素的指针。

所以您应该这样做:

mdump(d, &f);

d是一个数组。因此,只需写入D本身就表示数组中第一个元素的地址。通过使用& d,您将指针发送到指针到char的指针。但是您需要将指针发送给字符。因此,打电话给mydump的写方式是:

mdump(d, &f);