0 c malloc pointers strlen
int main(){ char *ptr = (char*)malloc(10); printf("%d",strlen(ptr)); }
输出是11.我不知道为什么会这样?
Ned*_*der 7
您尚未向malloc的块中写入任何数据.它有旧的字节,没有办法知道它包含什么. strlen只需查找下一个零字节.我猜你找到了一个11字节,但它可能已经有数千字节了.
strlen
您正在查看未定义的行为.
归档时间:
13 年,7 月 前
查看次数:
423 次
最近记录: