これ:
char *buf = NULL;
scanf("%ms", &buf);
動的に割り当てられた char バッファーを取得します。これは、Gcc (特に glibc のバージョン 2.7) でコンパイルされたコードに限定されていることはわかっています。
また、「正しい」ポータブルな方法は、malloc()
(および友人)を使用してメモリを取得することであることも認識しています。
私は興味がありますが、動的に割り当てられたメモリを取得するための他のポータブルまたはセミポータブル*実装はありますか? C でのメモリ割り当ての秘訣やヒントは、「Google」にとって難しいトピックだと思います。
注:これは「必須」ではないため、回答に制限はありません。
* セミポータブルの意味は、「私と同じようにコンパイルすれば、これは動作する」という意味です