Ricevo un buffer char * che ha la lunghezza di 10. Ma voglio concatenare l'intero contenuto nella mia struct che ha una variabile char *.Come concatere due caratteri * in C?
typedef struct{
char *buffer;
//..
}file_entry;
file_entry real[128];
int fs_write(char *buffer, int size, int file) {
//every time this function is called buffer have 10 of lenght only
// I want to concat the whole text in my char* in my struct
}
Qualcosa di simile a questo:
real[i].buffer += buffer;
Come posso fare questo in C?
Usa sempre 'strncat' (incluso anche nel link sopra) e non' strcat'. – pickypg
Sempre? Sembra un po 'pesante. "Stai attento" è sempre un buon consiglio, però - sono d'accordo. Ecco una domanda e alcune risposte su quando utilizzare ciascuna: http://stackoverflow.com/questions/6491038/strcat-vs-strncat-when-should-which-function-be-used –
Se non sai perché sei usando 'strcat', perché i due buffer sono sotto le garanzie predeterminate, allora dovresti sempre usare' strncat'. Qualcuno che inizia in C starà sempre meglio usando 'strncat' su' strcat' semplicemente perché il rischio non vale la ricompensa inosservabile. Considerando quale sia effettivamente il vantaggio, direi che non ne trarrai mai beneficio a meno che tu non stia scrivendo qualcosa di incredibilmente basso e che i controlli pre-requisito siano già stati fatti. – pickypg