This will depend on what you mean by "reusing strings". Not a leak:
Code:
char buf[ BUFSIZ ];
strcpy( buf, "some stuff here" );
...
strcpy( buf, "something else" );
...
strcpy( buf, "foo" );
All of the above is fine, you're just reusing the buffer. String functions will usually stop upon reaching the null terminator (except for fgets, for example).
Code:
char *ptr;
ptr = malloc( BUFSIZ );
strcpy( ptr, "something here" );
...
ptr = malloc( BUFSIZ );
Here you're reusing the pointer, but you didn't free the old allocated space first. That constitutes a leak. This doesn't:
Code:
ptr = malloc( BUFSIZ );
strcpy( ptr, "something here" );
...
strcpy( ptr, "foo" );
Here you're just reusing the same allocated space.
If you're still confused, provide a small sample, preferrably a small compilable program, as to what it is you're doing. Try to keep it a small illustration.
Quzah.