相关疑难解决方法(0)

什么时候printf("%s",char*)停止打印?

在我的课上,我们正在编写自己的C的malloc()函数副本.为了测试我的代码(当前可以分配空间很好)我正在使用:

char* ptr = my_malloc(6*sizeof(char));
memcpy(ptr, "Hello\n", 6*sizeof(char));
printf("%s", ptr);
Run Code Online (Sandbox Code Playgroud)

输出通常是这样的:

Hello
Unprintable character
Run Code Online (Sandbox Code Playgroud)

有些调试认为我的代码本身并没有造成这种情况,因为ptr的内存如下:

[24个字节的元信息] [请求的字节数] [填充]

所以我认为printf正在进入填充,这只是垃圾.所以我进行了测试: printf("%s", "test\nd");得到:

test
d
Run Code Online (Sandbox Code Playgroud)

这让我想知道,当DOES printf("%s",char*)停止打印字符时?

c printf

15
推荐指数
2
解决办法
3万
查看次数

标签 统计

c ×1

printf ×1