Ваша декларация выглядит нормально. «NSMutableArray *» - подходящий тип для вашего параметра. (Objective-C не имеет обобщений, поэтому вы ничего не можете объявить о том, что находится внутри массива.)
Одна проблема, которую я вижу в вашем коде, заключается в том, что вы выделяете объект без причины, а затем выбрасываете указатель (таким образом, происходит утечка памяти).
Я не знаю, что вы пытаетесь сделать, поэтому вот несколько вещей, которые вы можете сделать с NSMutableArray:
- (void)someName:(NSMutableArray *)featDataArray {
feat_data *featDataPtr = [[feat_data alloc] init];
[featDataArray addObject:featDataPtr]; // add an object to the end
[featDataPtr release];
feat_data *featDataPtr2 = [[feat_data alloc] init];
[featDataArray replaceObjectAtIndex:0 withObject:featDataPtr2]; // replace an existing entry
[featDataPtr2 release];
feat_data *featDataPtr3 = [featDataArray objectAtIndex:0]; // get the element at a certain index
// do stuff with featDataPtr3
}