什么是为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()'调用,所以很可能发生了内存泄漏。 –
也**注**你有指针指向字符指针,而不是简单的字符指针! –