這是可以接受的代碼?:這是可接受的練習初始化堆上的數組?
unsigned char *buffer= malloc(16 * sizeof(*buffer));
if (buffer == NULL) {
errorText.text= @"Insufficient memory.";
NSLog(@"%@",@"Insufficient memory.");
return;
}
unsigned char temp[16]= {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
memcpy(buffer,temp,16);
NSData* seed= [NSData dataWithBytesNoCopy:buffer length:16];
或:
unsigned char *buffer= malloc(16 * sizeof(*buffer));
if (buffer == NULL) {
errorText.text= @"Insufficient memory.";
NSLog(@"%@",@"Insufficient memory.");
return;
}
memset(buffer,0,16); // set all bytes to zero
buffer[0]= 0x01;
buffer[1]= 0x02;
buffer[2]= 0x03;
buffer[3]= 0x04;
buffer[4]= 0x05;
buffer[5]= 0x06;
buffer[6]= 0x07;
buffer[7]= 0x08;
buffer[8]= 0x09;
buffer[9]= 0x0a;
buffer[10]= 0x0b;
buffer[11]= 0x0c;
buffer[12]= 0x0d;
buffer[13]= 0x0e;
buffer[14]= 0x0f;
buffer[15]= 0x10;
NSData* seed= [NSData dataWithBytesNoCopy:buffer length:16];
我的C是有點生疏!
而不是使用' memset',爲什麼不使用'calloc'? – 2011-06-06 22:43:17
@Jacob ...對memset的調用是可選的,所以我將它編碼爲單獨的,以便稍後將其註釋掉。你認爲堆棧上的臨時陣列是否合理?使用初始化器編碼實際的種子更容易。 – JAL 2011-06-07 00:06:12