for (index = 0; index <= count; index++) { tmp = *av_fetch(val_arr,index,0); string = SvPVutf8(tmp,len); message->str[index] = savepvn(string,len); } #### int n = count; char* p = &m.str; while (n--) { ....blah... *p++ = savepvn(string,len); }