У меня есть проблема с моей функцией realloc.у меня есть структура Country, и внутри у меня есть структура "City", которая включает в себя массив точек города, в котором каждый город имеет 3 поля:
typedef struct Country {
char *name;
int numberOfCities;
City* cities;
cordinate cordinateOfCountryLeft;
cordinate cordinateOfCountryRight;
}Country;
typedef struct City
{
char *name;
char * popluarFood;
int numberOfPeople;
}City;
Мне нужно удалить город из массива города, чтобы освободить городс функцией, которую я построил, называется freeCity:
void freeCity(City *pCity)
{
free(pCity->name);
free(pCity->popluarFood);
free(pCity);
}
, но после удаления, когда я пытаюсь перераспределить, я получаю сообщение об ошибке в этой функции, когда realloc
status freeCityFromCountry(Country *country, char *cityName)
{
for (int i = 0; i < country->numberOfCities; i++) {//for
if (strcmp(country->cities[i].name, cityName)==0)
{
freeCity(country->cities+i);
country->cities[i] = country->cities[country->numberOfCities - 1];
// free(country->cities[country->numberOfCities - 1]);
country->cities = (City*)realloc(country->cities,(country->numberOfCities-1));
country->numberOfCities--;
return success;
}
}//for
return failure;
}
, я малок страны-> города вдругая функция.где может быть проблема?спасибо