C で 2 つの関数を記述しようとしています。そのうちの 1 つは引数として渡す配列の末尾に要素を追加し、もう 1 つは引数として渡された配列から要素を削除します。
私は C にあまり詳しくなく、ポインター演算が苦手です。
私はこのようなことを試しましたが、正しく動作していないようです:
void remove_element(type *elements, type element, int size){
int i;
int index = 0;
for(i=0; i<size; i+=1){
if(equals(elements[i], element)) index = i;
}
for(i=index; i<size-1; i+=1){
elements[i] = elements[i+1];
}
}
void add_element(type *elements, type element, int size){
elements = realloc(elements, size*sizeof(element));
elements[size-1] = element;
}
それが私が関数を呼び出す方法です:
add_element(elements, new_element, size);
remove_element(elements, element_to_remove, size);