这:
char *buf = NULL;
scanf("%ms", &buf);
将获得一个动态分配的字符缓冲区。我知道这仅限于使用 Gcc 编译的代码(特别是 glibc 的 2.7 版)。
我也知道“正确”和可移植的方式是只使用malloc()
(和朋友)来获取内存。
但是,我很好奇,是否还有其他便携式或半便携式*实现来获取动态分配的内存?我发现 C 中内存分配的技巧和技巧对“Google”来说是一个很难的话题。
注意:这对任何事情都不是“必需的”,因此对答案没有限制。
* 半便携的意思是“如果你编译的方式和我一样,这将工作”