|
|
|
|
|
by henesy
1568 days ago
|
|
The other comments are correct that there's value in returning a value even if it was passed in to make chaining functional calls easier. This can get a little tricky when ownership comes in to play since you don't want to end up in a situation where (not in the above program's situation, but in general) the caller might pass out a value that never gets freed and you can easily create memory leaks. You wouldn't want to do, for example: print("%s\n", smprint("%s", L"世界"));
Since smprint(2)'s return value was allocated and will need to be freed, but we have no way of doing that after the value is passed.You'd need to do: char *buf = smprint("%s", L"世界");
print("%s\n", buf);
free(buf);
|
|