以下のコードは GCC 4.2 では問題なく動作しますが、LLVM GCC 4.2 では EXC_BAD_ACCESS で失敗します。
- (double_t)readDouble {
double_t *dt = (double_t *)(buffer+offset);
double_t ret = *dt; // Program received signal: EXC_BAD_ACCESS
offset += 8;
return ret;
}
そう割り振ってます
int dataLength = [data length];
buffer = malloc(dataLength + 1);
buffer[dataLength] = 0; // null terminate to log
[data getBytes:(void *)buffer length:[data length]];
//NSLog(@"%s", buffer);
オフセットとバッファは似ています
@interface PRDataSet : NSObject {
NSMutableArray *tables;
NSMutableDictionary *tablesByName;
NSMutableDictionary *tablesById;
@private
NSURLConnection *conn;
int offset;
char *buffer;
}
はい、オフセットは範囲内です。使用する前にバッファーを解放しません。
何か案は?