Hola tengo una duda con un arreglo, el problema es este tengo determinada estructura y un arreglo. tengo que llenar el arreglo segun los datos que desee.
pero el problema es que no se como hacer para ingresarle otro dato al arreglo sin sobreescribir los demas osea que tengo que saber si al ingresar el dato en la posicion la posicion este vacia. aparte tengo que poder eliminar un dato del arreglo. porfavor necesito su ayuda.
Es en dev c++


void creaciondeclientes()
{
printf("creacion de cuenta, ingrese los siguientes datos\n\n");
int cantidancuentas=0;
for(int i=0; i <=5; i++)
{
printf("Nombre Cliente: ");
scanf("%s", &cuentah[i].nombre);
printf("\nApellido Cliente: ");
scanf("%s", &cuentah[i].apellido);
printf("\nfecha de nacimiento: ");
scanf("%s", cuentah[i].fechanacimiento);
printf("\nDireccion del Cliente: ");
gets(cuentah[i].direccion);
gets(cuentah[i].direccion);
printf("\ncorreo electronico del cliente: ");
scanf("%s", &cuentah[i].correo);
printf("\nGenero del Cliente: ");
scanf("%s", &cuentah[i].genero);
printf("\ncodigo personal de la cuenta: ");
scanf("%s", &cuentah[i].numerodcuenta);
printf("\nestado de la cuenta -activa- -cuenta no activa- : ");
scanf("%s", &cuentah[i].estado);
printf("\nsaldo inicial de la cuenta: ");
scanf("%f", &cuentah[i].saldo);

if (cuentah[i].saldo > 0)
{
system("cls");
printf("\n\ncuenta creada correctamente\n");
system("pause");
system("cls");
cantidancuentas ++;
cuentah[i].codigo = cantidancuentas;
}

else
{
system("cls");
printf("\nla cuenta no puede crearse con un saldo igual o menor a 0");
i--;
}

}
system("pause");
system("cls");
}

Aqui pido los datos pero no se como hacer el resto como podria resolverlo.