ho bisogno per il trattamento di casi in cui ho actully ho nulla da spostare/copiare con memmove()
/memcpy()
come casi limitePosso chiamare memcpy() e memmove() con "numero di byte" impostato su zero?
int numberOfBytes = ...
if(numberOfBytes != 0) {
memmove(dest, source, numberOfBytes);
}
o devo solo chiamare la funzione senza controllare
int numberOfBytes = ...
memmove(dest, source, numberOfBytes);
è la verifica nel precedente frammento necessario?
domanda mi ricorda un po 'di controllo per i puntatori nulli su funzioni come libero. Non necessario, ma vorrei mettere un commento lì per mostrarvi il pensiero su di esso. – Toad
@Toad: quale scopo serve, se non quello di ingombrare il codice?Quando leggo il codice di qualcuno, non ho bisogno di sapere che il programmatore originale "ha pensato di fare questa operazione che non è effettivamente necessaria, ma perché non è necessaria, non l'ho fatto". Se vedo un puntatore essere liberato, * so * è permesso essere nullo, quindi non ho bisogno di conoscere i pensieri del programmatore originale sull'argomento "dovrei controllare per null". E lo stesso vale per la copia di 0 byte con 'memcpy' – jalf
@jalf: il fatto che sia una domanda sullo stackoverflow, lo rende qualcosa che la gente dubita. Quindi aggiungere un commento potrebbe non aiutarti, ma potrebbe aiutare qualcuno con meno conoscenza – Toad