Я хочу удалить i-й член массива строк и принести каждый элемент, который приходит после него на одно место (i + 1-й член в i и т. Д.). Я придумал следующий код:обмен между членами массива строк в C
for (int j = i; j < arrSize - 1; j++) {
strcpy(members[j],members[j+1]);
}
free(members[arrSize-1]);
Но это заставило меня думать, что это может быть неправильно. Например, если элемент i-го места содержит имя «Джон», а элементы (i + 1) -th place содержат имя «Joshua», что означает, что каждая строка имеет разную длину, будет ли какая-либо память утечки или любые проблемы? Заранее спасибо!
EDIT: Definiton участников:
members = malloc(maxMembersNum * sizeof(char*));
и что такое '' массив строк'? Я имею в виду, показать нам определение «членов». –
как вы распределяете для 'members'? – holgac
Невозможно ответить на этот вопрос, не видя объявления «членов» и как он построен. C имеет несколько способов сделать это. –