У меня есть программа на C, которая часто использует char *str[xx]
персонал.
Некоторые строки заполняются с помощью оператора присваивания (=) и не нуждаются в освобождении.
Но некоторые другие (в том же массиве) заполняются с помощью strdup()
, который должен быть освобожден в конце программы:
char * str [10];
ул [я] = "Привет";
ул [к] = strdup ( "привет");
оба строковых указателя ненулевые , и освобождение str [i] естественным образом сгенерирует «ошибку сегмента».
Моя проблема в том, что в конце моей программы у меня нет трека, указатель на который указывает на строку, сгенерированную strdup()
. Можете ли вы помочь мне, как я могу найти строку, сгенерированную strdup
, чтобы я мог освободить их?
спасибо