I generally use General/NSMutableData. Just like malloc(), General/NSMutableData will provide a void pointer that I can cast to the type I want to actually store, � mutableBytes. General/NSMutableData also provides an automatic realloc() capability, -increaseLengthBy:. General/NSMutableData can provide small chuncks and huge chunks equally well. Best of all, using General/NSMutableData lets me use Cocoa’s memory management conventions unbiquitously. I never have to worry about free() or who should free memory allocated within a function call etc.