热情软件屋

 

sprintf中buf开的大小不足,会不会产生问题


编号:QA004746
建立日期: 2003年11月7日 最后修改日期:2003年11月7日
所属类别:

姜维:
    操作系统: windows2000
    编程工具: vc++6.0
    问题: 关于sprintf
    例如:
    char buf[3];(或char buf[] = "")
    sprintf(buf, "%s", "aaaa");
    其中buf开的大小不足,会不会产生问题?
    水平: 刚入门

回答:

    因为C语言在进行字符串操作时不检查字符串的空间是否够大,所以可能会出现数组越界而导致程序崩溃的问题。即使碰巧,程序没有出错,也不要这么用,因为早晚会出错。所以一定要在调用sprintf之前分配足够大的空间给buf。

此问题由李海回答。

附加关键字:编程, 源程序, programming, source code, C/C++, MFC, C++ Builder, Borland C++, Turbo C, C, BCB, 其他方面,

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio