1
fangzhzh 2014-01-10 11:44:54 +08:00
analyze一下, 编译器升级了后 ,有的以前的warning,就直接给你认为是bug了.
|
2
guoxx_ 2014-01-10 13:37:10 +08:00
lz能贴一下调用地方的代码吗?
从上面的代码来看,应该是调用的char *read所在的段不可写 |
4
GalvinZhao OP @fangzhzh 做过了,这段代码没有发现问题
|
5
GalvinZhao OP @guoxx_
int func(char *read){ //a的值是"abcd|@12345|@efgh|67890" char *q; q = a; while (strsep(&q, symbol)); } |
6
GalvinZhao OP @guoxx_q = a; 错了,因该是q = read;
|
7
GalvinZhao OP @fangzhzh
调用这个func的方法是 func((char *)[parameter cStringUsingEncoding:NSASCIIStringEncoding],recv,result,"|"); parameter也就是read 是 .pch 宏字符串 |
8
guoxx_ 2014-01-10 18:30:26 +08:00
.pch的宏的话是NSConstantstring, 这个应该就是导致你不能修改这部分内存的原因。
换成动态创建内存的方式 [NSString stringWithString:parameter]或者[NSMutableString stringWithString:parameter] |
9
nil 2014-01-10 22:18:24 +08:00
擦,你确定你在做iOS?
|
10
lalawue 2014-01-11 00:26:13 +08:00
楼主那么好的 iOS NSString 类型不用干嘛。。。底层的事情就交给底层去做吧,因为这种错误也许在不同的设备以及平台上原因都有可能不同;如果只是纯研究的话请无视
|