Gri*_*fin 0 c++ loops itoa infinite-loop
这很奇怪.itoa();似乎创造了一个无限循环.
for(int i = 0; i < 10; i++)
{
char buffer[1];
itoa(i, buffer, 10);
std::cout << buffer;
}
Run Code Online (Sandbox Code Playgroud)
为什么它会这样做呢?我尝试使用不同的变量i,没有变量的数值(即itoa(1, buffer, 10);),它仍然在无限循环中结束.我试图谷歌没有太大的成功,我在这里找到了一个旧邮件.我使用Windows XP 32位和Code :: Blocks(带GCC)作为编译器.
有谁知道什么是错的?提前致谢.
itoanull - 终止它生成的字符串,但是你没有buffer足够大来保存终止NUL字符.尝试:
for (int i = 0; i < 10; i++)
{
char buffer[2];
itoa(i, buffer, 10);
std::cout << buffer;
}
Run Code Online (Sandbox Code Playgroud)