while((r = read(src, buff, 100)) > 0){
char* ptrBuf = buff;
char* ptrBufRes = buffRes;
//bucle para analizar la lectura
while(*ptrBuf != '\0'){ //BUCLE QUE RECORRE EL BUFFER
после того, как вы прочитали пропущенный буфер, чтобы добавить последний нулевой символ за секунду , в то время как ожидают, так что каждый продолжает искать нулевой символ, который вы никогда не устанавливали, конечно, это неопределенный поведение.
Вы можете добавить нулевой символ в buff [r] , но это предполагает, что вы читаете до 99 байтов, а не 100 или buff должен иметь размер 101 иначе просто замените второй , в то время как на
while (ptrBuf != (buff + 100)) {
Предупреждение. Существует также проблема в l oop
while(*(ptrBuf + 1) == *ptrBufRes)
где вы можете go из прочитанных байтов / из бафф