【发布时间】:2010-10-12 03:44:56
【问题描述】:
我的问题和这个one完全一样。也就是说,我正在尝试使用scanf() 接收一个不确定长度的字符串,并且我希望scanf() 为其动态分配内存。
但是,在我的情况下,我使用的是 VS2010。据我所知,MS 的scanf() 在扫描字符串时没有 a 或 m 修饰符。有没有办法做到这一点(除了一次接收输入一个字符)?
【问题讨论】:
-
GNU C 库支持“a”作为“分配内存”修饰符; GNU C Library 2.8 版(我碰巧有的手册)没有提到'm'作为修饰符。这是自 2.8 以来的另一个新增功能吗?
-
我在 2008 年 7 月 12 日版本 3.23 的联机帮助页中提到了两者。
m修饰符是 GNU 扩展a的替代品,因为它与匹配浮点数的 c99 修饰符a发生冲突。 -
@Frank:是时候下载更新了……谢谢。这有时是非标准扩展的另一个缺点——标准通过标准化改变了非标准的含义。
-
好吧,我自己可能需要一份新副本。我不知道我的太旧了,我猜没有人会刷新 Ubuntu 存储库中的联机帮助页,那里和 Debian 存储库中都有很多过时的软件......为什么没有一个自动更新存储库的系统?
标签: c++ c visual-studio-2010