【发布时间】:2021-01-16 21:14:51
【问题描述】:
我需要像strlen 这样的东西,但字符串只填充了空终止符"\0\0\0\0\0\0\0",我需要用另一个字符填充它,直到(不包括)最后一个\0,就像"FFFFFF\0"。有没有办法计算出大小而不会出错?
我必须为一个名为“libft”的学校项目实施bzero。然后我的任务是实现strcpy,我在手册页中看到dest 需要足够大才能接收src 的副本,所以我想说明bzero 在@987654330 上使用的情况@ 和 strcpy 不允许我将 dest 的大小作为参数传递。我只是想知道(出于好奇)我怎么知道dest 有多大,因为我知道strcpy 不能说明这一点。手册页中有一条警告“小心缓冲区溢出!(请参阅 BUGS。)”。
我现在意识到这在 C 中可能是不可能的。
【问题讨论】:
-
必须以某种方式分配该内存区域。如果你有一个用 nuls 填充的“字符串”,它就不再是一个字符串了。
-
@dawg 是的,我知道它不再是一个字符串,这就是我双引号的原因。如果不只是分配的内存,我不知道它叫什么。
-
跟踪该区域是如何分配的,并且有你的答案。如果你不知道分配了什么,那就是没有分配,那将是一个问题。