What prevents a miner to change the locking scripts of an unconfirmed transaction In many cryptocurrencies a TX is composed of an array of TX inputs and TX outputs. 

When a TX is submitted to the network, it already has the signature (in the unlocking script). 

So my question is, what does prevent a miner or anyone on the network to use the already present unlocking and change the locking scripts of the transactions and then propagate the transaction. 

Because in my understanding I may provide a signature to unlock a txo and someone uses my signature to change the locking scripts of those TXs.
Signatures cover inputs and outputs.

If someone changes one of the outputs in a transaction, a new signature is required. Effectively your signature signs "permit using my UTXO X to send A BTC to B, C BTC to D, ...".