정수를 바이트 배열 (iPhone 용)로 변환하는 기능이 있습니다. 역 동성을 추가하기 위해 malloc을 사용하여 배열을 할당했습니다. 그러나 이것은 기억이 누출 될 것이라고 생각합니다. 무엇 메모리는,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];
내가 모르는 이후 전화 무료 (바이트), 호출 기능을 피하려고,이 메모리를 관리하는 가장 좋은 방법으로 또는 명시 적으로 알고 할당되지 않았고 해제되지 않았습니다. 당신은 당신이 무료 통화를 피하기 위해 원하기 때문에 (메소드 또는 클래스의 dealloc의 말 중)
, 당신이 당신의 바이트 [포장 할 수있는 바이트 완료되면
출시를 :
나는 또한 바이트를 보유하는있는 NSData을 만드는 것이 좋습니다 것입니다 여전히 바이트 버퍼를 변경 허용하면서, 이것은 당신을 위해 메모리 관리 돌볼 것 끝에는 free()가 붙어 있습니까? –
이 접근법의 문제점은 함수 호출자가 구현이나 주석을 보지 않고 반환 된 포인터를 해제할지 여부를 알 수 없다는 것입니다. 그것이 OP가 대안을 요구하는 이유 일 것입니다. – nhahtdh
NSData를 사용하여 바이트를 랩핑하십시오. –