C言語なら俺に聞け! Part 94
レス数が950を超えています。1000を超えると書き込みができなくなります。
0952デフォルトの名無しさん
NGNG文字列を返すには「誰か」が文字列用のバッファを確保しておかなければならない。
お勧めは1.
2.はお手軽だけどprintf("%s %s", foo(), foo())とやるとおかしなことになる(バッファがひとつしかないから)。
3.はあまり使われない方法でp = foo(); free(p); と見た目的にmalloc/freeが対になってないのでなんとなく不安。
1. 呼び出し側が確保
char *foo(char *buf, size_t buf_size){ return buf; }
2. static, global変数で確保
char *foo(){ static char buf[256]; return buf; }
char buf[256];
char *foo(){ return buf; }
3. 動的に確保
char *foo(){ char *p = malloc(256); return p; }
レス数が950を超えています。1000を超えると書き込みができなくなります。