error: conversion from 'double' to non-scalar type '' requested" struct in c++?

error: conversion from 'double' to non-scalar type '' requested" struct in c++?

我想更改我的简单结构中的一个属性。我无法更改主要功能中的任何内容。 但是编译器给我关于标量类型的错误 - 它到底是什么意思,我错了什么?

#include <iostream>

using namespace std;

struct Number{
    int a;
    double b;
};

double zmiana(Number *number,double scale){
    number->a*=scale;
    return number->a;
}

int main()
{
    Number number1={2,3.14};
    Number number2=zmiana(&number1,2.);
    cout<<&number2;
    return 0;
}

预期输出:4 3.14

这是潜在的修复方法:

#include <iostream>


struct Number
{
    int a;
    double b;
};

double zmiana( Number* number, double scale )
{
    number->a *= scale;

    return number->a;
}

int main()
{
    Number number1 = { 2, 3.14 };
    Number number2;
    number2.b = zmiana( &number1, 2. );
    std::cout << &number2; // Notice that what you do here is printing a pointer's value

    return 0;
}