0
내 GArray에서 값을 검색하는 데 문제가 있습니다.GLib 배열을 트래버스 할 때 오류가 발생했습니다.
GArray * get_leakddata(struct memory* mem) {
struct leak_data {
char *file;
int line;
char *pointer;
size_t sz;
};
.....
GArray * get_leakddata(struct memory* mem) {
GArray *leak_array = g_array_new(false, false,sizeof(struct leak_data));
g_hash_table_foreach(mem->metadata_hashtable,(GHFunc)get_leakdata_from_metadata, leak_array);
,struct leak_data *,3)->sz);
return leak_array;
}
void get_leakdata_from_metadata(char *key_address, struct metadata_record *metarec, GArray *leak_array) {
if(!get_isallocated(metarec))
return;
static int i=0;
struct leak_data * ld = (struct leak_data *) malloc(sizeof(struct leak_data));
ld->file = get_prev_file(metarec);
ld->line = get_prev_line(metarec);
ld->pointer = key_address;
ld->sz = get_metadata_recordsize(metarec);
printf("get_leakdata_from_metadata sz: %d\n",ld->sz);
g_array_append_val(leak_array,ld);
i++;
printf("get_leakdata_from_metadata 2: %d\n",g_array_index(leak_array,struct leak_data*,i)->sz);
}
인쇄 아웃 :
get_leakdata_from_metadata sz: 12
get_leakdata_from_metadata 2: 1
은 결국 나는 배열이 아닌 포인터 그들에게, struct leak_data
들입니다 독방 감금 오류를
그것이 정말이어야한다해야한다'구조체 leak_data *''g_array_index'에 대한 호출에? –
또한,'get_leakddata' 함수는 "왜곡되어"있습니다. –