This seems like a recurring question/issue but I did not manage to solve it as I am new to C++ and pointers/references.
Here is my setup :
uint16_t API_PORT = 0;
I then feed that variable with data retrieved from an EEPROM as follows :
i2cReadShortFromExternalEEPROM(I2C_ADDR_EEPROM, (addrAPI + sizeof(API_HOSTNAME) + 1), API_PORT);
my function is :
void i2cReadShortFromExternalEEPROM(int i2cAddressOfExternalEEPROM, unsigned int atAdress, short *s) {
byte firstByte = i2cReadByteFromExternalEEPROM(i2cAddressOfExternalEEPROM, atAdress);
byte secondByte = i2cReadByteFromExternalEEPROM(i2cAddressOfExternalEEPROM, atAdress + 1);
s = ((short)firstByte << 8) + (short)secondByte;
}
This throws following error at compilation :
exit status 1
invalid conversion from 'uint16_t' {aka 'short unsigned int'} to 'short int*' [-fpermissive]