//the pointer makes the change visible
//to the caller
void print5(NSString **data) {
if ([*data length] > 5) {
*data = [*data substringToIndex:5];
}
NSLog(@"%@", *data);
}
NSString *data = @"1234567";
print5(&data);
//printed "12345"
//data is "12345"