c - defining the CHAR pointer with variable size -


how can define char pointer correct or variable width?

my scenario below..

void processra(int _racount, char *rafile) {     char *command; // how correctly define variable ?     sprintf(command, "somecomm -r %s -n%d-%d ", rafile, (_racount - 1), (_racount - 1));     system(command); } 

in scenario, defining char pointer command. size of command depends on function passed variable rafile , following line's command.

char* in c come without associated storage. different languages fortran character type stands string of fixed size. either have define character array using char command[size+1], or use malloc() allocation (don't forget call free() when done string).

the tricky part correctly compute required length. however, in posix-2008 standard, there function called asprintf(), precisely need: combines function of sprintf() allocation of enough memory using malloc() (again, don't forget call free() when done string). usage follows:

void processra(int _racount, char *rafile) {     char *command; // how correctly define variable ?     asprintf(&command, "somecomm -r %s -n%d-%d ", rafile, (_racount - 1), (_racount - 1));     system(command);     free(command); } 

Comments

Popular posts from this blog

c# - How to get the current UAC mode -

postgresql - Lazarus + Postgres: incomplete startup packet -

javascript - Ajax jqXHR.status==0 fix error -