Problemi con allocazione dinamica

di il
2 risposte

Problemi con allocazione dinamica

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

2 Risposte

Devi accedere o registrarti per scrivere nel forum
2 risposte