Hey everyone, I have a problem that is really puzzling...
I have the following code:
Code:
// Determine size of transfer
packageSize = strlen( TxBuffer );
cout << "packageSize "<< packageSize << endl;
char* RxBuffer = new char [ packageSize ];
cout << "RxBuffer " << strlen ( RxBuffer ) << endl;
// Zero out the Rx buffer
memset( RxBuffer, 0xa5, packageSize );
cout << "packageSize "<< packageSize << endl;
cout << "RxBuffer " << strlen(RxBuffer) << endl;
When executed with some TxBuffer length 16 i get this:
packageSize 16
RxBuffer 32
packageSize 16
RxBuffer 32
When I change my code to
Code:
// Determine size of transfer
packageSize = strlen( TxBuffer );
cout << "packageSize "<< packageSize << endl;
char* RxBuffer = new char [ packageSize/2 ];
cout << "RxBuffer " << strlen ( RxBuffer ) << endl;
// Zero out the Rx buffer
memset( RxBuffer, 0xa5, packageSize/2 );
cout << "packageSize "<< packageSize << endl;
cout << "RxBuffer " << strlen(RxBuffer) << endl;
The output is like this:
packageSize 16
RxBuffer 24
packageSize 16
RxBuffer 24
I'm not sure why the sizes are even different, and even more strangly, why is dividing a 32 size by 2 giving me 24?