首先,您的 data() 函数的签名:
bool data(struct *sampleData)
不可能工作,因为参数缺少名称。当您声明要实际访问的函数参数时,它需要一个名称。因此,将其更改为:
bool data(struct sampleData *samples)
但在 C++ 中,您实际上根本不需要使用struct
。所以这可以简单地变成:
bool data(sampleData *samples)
其次,此时sampleData
data() 不知道该结构。所以你应该在此之前声明它:
struct sampleData {
int N;
int M;
string sample_name;
string speaker;
};
bool data(sampleData *samples)
{
samples->N = 10;
samples->M = 20;
// etc.
}
最后,您需要创建一个类型为 的变量sampleData
。例如,在您的 main() 函数中:
int main(int argc, char *argv[]) {
sampleData samples;
data(&samples);
}
请注意,您需要将变量的地址传递给 data() 函数,因为它接受一个指针。
但是,请注意,在 C++ 中,您可以通过引用直接传递参数,而无需使用指针“模拟”它。你可以这样做:
// Note that the argument is taken by reference (the "&" in front
// of the argument name.)
bool data(sampleData &samples)
{
samples.N = 10;
samples.M = 20;
// etc.
}
int main(int argc, char *argv[]) {
sampleData samples;
// No need to pass a pointer here, since data() takes the
// passed argument by reference.
data(samples);
}