2011-12-16 72 views
2

我使用CellStumbler獲取iPhone的單元ID,位置區域代碼和其他信息。獲取單元信息後,引發EXC_BAD_ACCESS

調用getInfo後,我得到一個EXC_BAD_ACCESS,我找不到原因。這都是無證的私人功能,但肯定有人可以提供幫助。該問題與函數中的任何行都沒有關聯,只有在運行後纔會發生。

Cell Stumbler

我知道這是不是App Store中可批准。

int cellcount; 
_CTServerConnectionCellMonitorGetCellCount(&t1,sc,&cellcount); 

printf("Cell count: %x\n",cellcount); 

printf("Size = %lx\n", sizeof(struct CellInfo)); 

unsigned char *a=malloc(sizeof(struct CellInfo)); 

for(b=0;b<cellcount;b++) 
{  
    _CTServerConnectionCellMonitorGetCellInfo(&t1,sc,b,a); memcpy(&cellinfo,a,sizeof(struct CellInfo)); 
    printf("Cell Site: %d, MNC: %d, ",b,cellinfo.servingmnc); 
    printf("Location: %d, Cell ID: %d, Station: %d, ",cellinfo.location, cellinfo.cellid, cellinfo.station); 
    printf("Freq: %d, RxLevel: %d, ", cellinfo.freq, cellinfo.rxlevel); 
    printf("C1: %d, C2: %d\n", cellinfo.c1, cellinfo.c2); 
} 
if(a) free(a); 

這是上面的CellStumbler項目中可用的getCellInfo函數。這個錯誤發生在這個被調用之後,但不一定在這個函數中,只有在這之後,就好像運行這個後來的效果是一些內存損壞一樣。

+0

請包括您的一些代碼。也許甚至是造成錯誤的部分? – jrturton 2011-12-16 10:13:51

回答

2

我暫時解決了這個問題,通過刪除for循環並只運行_CTServerConnectionCellMonitorGetCellInfo一次。