mercredi 12 octobre 2022

runtime error: index 1024 out of bounds for type 'uint8_t [1024]' in C++ [duplicate]

I am getting the runtime error: index 1024 out of bounds for type 'uint8_t [1024]' during run time

at

EepromShadow[shadow_address] = TempRecord.Payload[index];

How to fix this out of bound issue?

Below is the code:

struct TEMP_RECORD
{
    uint8_t  Length;                            
    uint32_t Address;                           
    uint8_t  Checksum;                          
    uint8_t  PayloadSize;                       
    uint8_t  Payload[S37_MAX_PAYLOAD_SIZE];     
};


inline constexpr uint16_t   MAX_EEPROM_SHADOW_ADDRESS = 1024;
uint8_t             EepromShadow[MAX_EEPROM_SHADOW_ADDRESS];
TEMP_RECORD             TempRecord;



for(uint32_t index = 0; index < TempRecord.PayloadSize; ++index)
                            {
                                uint32_t shadow_address = TempRecord.Address + index;
                                if (i < MAX_EEPROM_SHADOW_ADDRESS)
                                {
                                    EepromShadow[shadow_address] = TempRecord.Payload[index];
                                }
                            }

Aucun commentaire:

Enregistrer un commentaire