end = str + ptrSize;
while ((end > str && isspace(*end)) || (end > str && isprint(*end) == 0)) end--;
Tohle ti už od pohledu bude číst char mimo pMsgDesc->PutDate, kterýžto má mít 48 byte takže můžeš přistupovat jenom k bytům od 0 do 47 a né 48.
Děkuji za upozornění, kontroloval jsem to a řetězec je zde celý (příklad 123456789012345678901234567890123456789012345678 = 48 znaků).
pMsgDesc->PutDate a ostatní řetězce, které zpracovávám přes
ptr nejsou v pravém slova smyslu řetězce - chybý jim na konci znak '\0', který zpracovávám v str a v něm je zaručeno, že poslední znak bude vždy '\0' (pokud
ptr neobsahuje prázdné znaky zprava v tom případě bude znak '\0' umístěn na jiný index.
Pokud existuje nějaký příklad, ve kterém toto selže byl bych rád, abych o tom věděl.
Příklad vstupních dat (záměrně neuvádím na konci dat '\0', protože 100% tam není).
't' + 'e' + 's' + 't' mi vrátí do str 't' + 'e' + 's' + 't' + '\0'
't' 'e' 's' 't' '\20' '\20' '\20' mi vrátí do str 't' + 'e' + 's' + 't' + '\0'