【发布时间】:2017-01-18 11:24:31
【问题描述】:
下面是代码sn-p:
char *b = NULL;
b = new char[5];
if(b != NULL) {
printf("b=%p\n",b);
sprintf(b, "helloPLS...123456789123456789");
printf("b = %s\n", b);
}
output : b = helloPLS...123456789123456789
如果只分配了 5 个字节,那么为什么所有“helloPLS...123456789123456789”字符串都被添加到 5 个字节的内存中?
我的程序运行良好。
【问题讨论】:
-
非常好和Undefined Behavior就像是在点缀着Land mines的金色街道上欢欣鼓舞。
-
现在问题不在于 C。请选择一种语言。