void * cpstr(void * str, int strln, void *start, unsigned int num){ int vl=0; void * pos; if (strln == 1){ memset(start,*(char *)str,num); return (char *)start+num; } while (num){ while (!(num % 2)){ vl++; num=num>>1; } pos=mempcpy(start,str,strln); num=num-1; str=start; while (vl){ pos=mempcpy(pos,start,strln); strln=strln<<1; vl--; } start=pos; } return start; }