Salve a tutti
cosi come da titolo ho problemi ad accedere ad una struttura allocata in memoria.
il problema è il seguente:
quando carico l'ultimo campo della struttura mi da un valore non congruo
dal dump della locazione risulta questo:
ba cc cc cc 0f 34 04 25 b0 03 97 00 bf
adesso:
la struttura è la seguente
__int8 // attivo valore corretto ba
int attribbuto // valore corretto cc cc cc 0f
char *valore // valore corretto 34 04 25 b0
__int8 fine_campo // valore corretto bf ma mi restituisce 03
ho già provato a mettere dei campi prima per cercare di intercettare i 3 byte ( 03 97 00 ) "intrusi",credo che siano dei byte di controllo che servono al sistema ma non ne sono certo!
ho anche provato a mettere dei campi dopo a fine_campo con la speranza che gli "intrusi" venissero spostati dopo il campo che mi interessava!
ma gli "intrusi" si sono posizionati sempre prima del mio fine campo.
{
__int8 partenza = -70; __int8 arrivo = -65;
bool su_stack = numera !=nullptr;
if (!su_stack)
{
numera= new (std::nothrow) Numero;
if (!numera){ errore=106; break; }
}
numera->attivo=partenza; numera->fine_campo=arrivo;
numera->valore = new char[inbyte];
if (!numera-> valore)
{
delete numera; numera=nullptr;
errore=106; break;
}
come posso fare a risolvere il problema?
sto compilando con visual studio 2019