SAA, не пудрите парню мозги.
вроде пытаюсь только момочь
strncpy(pstr, buff, len); - это встретив в массиве buff значащий элемент со значением 0 примет его за конец строки и не скопирует ничего после него.
Я знаю про это, поэтому ищу конец строки, вот:
while(buff[len] != 0) ++len;
Он же не говорит - что первый массив это строка.
А откуда Вы узнали, сколько байт ему нужно скопировать.
int actual_size;
Просто исходных данных мало, чтобы однозначно ответить на этот вопрос.
ЗЫ ГРОМ может быть перейдем на ты.