sprintf buffer sizes

后端 未结 3 1862
無奈伤痛
無奈伤痛 2021-01-20 19:00

I\'m a novice programmer, but usually I can unravel my own issues. This time I solved the issue, but it still stumps me. A friend suggested I ask this community for input.

3条回答
  •  伪装坚强ぢ
    2021-01-20 19:55

    You're forgetting the NUL terminator. In C, strings require an extra character for the terminator, so char buf[2] ought to be char buf[3] to accommodate numbers between 10 and 99.

    Incidentally, your code demonstrates why sprintf is dangerous as it can write past the output buffer and enable stack smashing attacks. A better options is to use snprintf.

提交回复
热议问题