整数をバイト配列に変換する機能があります(iPhone用)。動的性を追加するために、malloc を使用して配列を割り当てました。しかし、これはメモリリークになると思います。このメモリを管理する最善の方法は何ですか?
+ (unsigned char *) intToByteArray:(int)num{
unsigned char * arr = (unsigned char *)
malloc(sizeof(num) * sizeof(unsigned char));
for (int i = sizeof(num) - 1 ; i >= 0; i --) {
arr[i] = num & 0xFF;
num = num >> 8;
}
return arr;
}
お電話の際は、
int x = 500;
unsigned char * bytes = [Util intToByteArray:x];
free(bytes) の呼び出しを避けたいのは、呼び出し元の関数が知らないか、明示的に知っているため、メモリが割り当てられ、解放されていないためです。