On Thu, Jul 01, 1999 at 03:19:05PM +1200, Michael Beattie wrote: > char *rad_cmd; > rad_cmd = "number:"; > What now? i.e. rad_cmd+freq_num to give rad_cmd = "number:444" > strcat()?
This is broken. You should *never* assign a string constant to a non-const variable! Because if you subsequently try to mutate the string (and you will) and you are lucky, you will be looking at a core dump. Never, EVER, mutate a constant! Use -Wwrite-strings with gcc to catch these. When you work with strings in C, you must *alwys* think about memory management. My solution to your problem uses malloc(): #include <stdio.h> #include <stdlib.h> int main(void) { int number = 444; char * string; const char * origstring = "number:"; size_t string_len; string_len = 3 /* length of 444 */ + strlen(origstring) + 1 /* for '\0' */; string = malloc(string_len); if (string == 0) abort(); /* Ugh. Do better error handling. */ snprintf(string, string_len, "%s%i", origstring, number); puts(string); free(string); return 0; } -- %%% Antti-Juhani Kaijanaho % [EMAIL PROTECTED] % http://www.iki.fi/gaia/ %%% "... memory leaks are quite acceptable in many applications ..." (Bjarne Stroustrup, The Design and Evolution of C++, page 220)