Я пытаюсь создать функцию в C, которая перемещает все элементы (строки) вверх в массив и вставляет строку в конец. По какой-то причине, хотя созданная мной функция заставляет все элементы массива иметь одинаковое значение (значение, которое я вставляю). Я не уверен, что я сделал неправильно.Перемещение массива строк C
Сначала я подумал, что, возможно, это потому, что они являются строками и что элементы, которые они перемещают, нужно перераспределять в памяти, но думали, что я просто перемещаю места расположения строк в любом случае. Я определенно что-то недопонимаю.
Любая помощь была бы принята с благодарностью.
void addItem(char **list, char *item, int size){
int i;
// loop through the list and move everthing up
for(i=0; i<size-1; i++){
// move items up until we are at the last item
list[i] = list[i+1];
}
// set the last item
list[size-1] = item;
}
аргументы, которые вы передаете этой функции, как они распределены? размер размера массива или количество элементов в массиве? –
список выделяется во время выполнения основной функции, а затем все элементы имеют значение NULL. Строка, добавляемая, берется из ввода пользователя. – tiantang
Опять же, как распределяется строка? Проблема в вызывающем. – ikegami