什麼是爲temp_comercial temp_active_substance分配內存的正確方法? 這個分配會導致內存泄漏嗎?我只需要一個答案爲字符指針分配內存的正確形式..內存分配可能的內存泄漏
int * temp_quantity;
void ** temp_pointers;
char ** temp_comercial_name;
char ** temp_active_substance;
char ** temp_manufacturer;
char ** temp_expiry_date;
int insertion_index, split, new_key, i, j;
new_leaf = make_leaf();
temp_keys = malloc(order * sizeof(int));
if (temp_keys == NULL) {
perror("Temporary keys array.");
exit(EXIT_FAILURE);
}
temp_quantity = malloc(order * sizeof(int));
if (temp_quantity == NULL) {
perror("Temporary quantity array.");
exit(EXIT_FAILURE);
}
temp_pointers = malloc(order * sizeof(void *));
if (temp_pointers == NULL) {
perror("Temporary pointers array.");
exit(EXIT_FAILURE);
}
temp_comercial_name = malloc(order);
for(i = 0 ; i < order ; i++)
temp_comercial_name[i] = malloc(sizeof(char) * 20);
temp_active_substance = malloc(order);
for(i = 0 ; i < order ; i++)
temp_active_substance[i] = malloc(sizeof(char) * 20);
temp_manufacturer = malloc(order);
for(i = 0 ; i < order ; i++)
temp_manufacturer[i] = malloc(sizeof(char) * 20);
temp_expiry_date = malloc(order);
for(i = 0 ; i < order ; i++)
temp_expiry_date[i] = malloc(sizeof(char) * 20);
爲C.你更容易找到與這種代碼在標籤經驗的人你或許應該標記這一點。 – juanchopanza
由於在代碼中無法找到一個'free()'調用,所以很可能發生了內存泄漏。 –
也**注**你有指針指向字符指針,而不是簡單的字符指針! –