這對我的程序造成了很多問題。當我創建一個新的結構化指針陣列時,它們都等於'\0'
?我檢查了它們是否在數組if(table_p -> buckets_array[i] == '\0'){ printf("ask this \n") ; }
的末尾,對於數組中的每個成員都是如此。我檢查錯了嗎?不僅最後一個成員應該有\0
嗎?爲什麼我的整個數組有' 0'?
typedef struct data_{
char *key;
void *data;
struct data_ *next;
}data_el;
typedef struct hash_table_ {
void **order;
int *number_next_calls;
int *number_buckets;
int *buckets_size;
int *worst;
int *total;
float *average;
int (*hash_func)(char *);
int (*comp_func)(void*, void*);
data_el **buckets_array;
} hash_table, *Phash_table;
/*Create buckets array*/
table_p -> buckets_array = (data_el **)malloc(sizeof(data_el *)*(size+1));
table_p -> buckets_size = (int *)malloc(sizeof(int)*(size+1));
/*Setting order array*/
table_p -> order = NULL;
/*Setting inital condictions*/
table_p -> worst = (int *)malloc(sizeof(int));
table_p -> total = (int *)malloc(sizeof(int));
table_p -> average = (float *)malloc(sizeof(float));
table_p -> number_buckets = (int *)malloc(sizeof(int));
/*This is where I have isssue*/
for(i = 0; i < size; i++){
table_p -> buckets_array[i] = NULL;
table_p -> buckets_array[i] -> buckets_size = 0;
if(table_p -> buckets_array[i] == '\0'){
printf("ask this \n");
}
}
如果我說'NULL'和'\ 0'完全一樣,會有幫助嗎?所以如果你做了'buckets_array [i] = NULL;'然後是''buckets_array [i] =='\ 0''。 –
是的,這真的會回答我的問題。謝謝 –
好的。那麼,它們並不完全一樣,它們有不同的類型。但同樣的價值! –