在C中,有没有办法计算填充了空终止符的已分配内存的大小?

我需要类似的东西,strlen但字符串只填充了空终止符"",我需要用另一个字符填充它,直到(不包括)最后一个像 so "FFFFFF"。有没有办法计算尺寸而不会出错?

我不得不bzero为一个名为“libft”的学校项目实施。然后,我受命执行任务strcpy的手册页和我看到的是dest需要足够大来接收的副本src,所以我想账户所处的环境bzero中使用上deststrcpy没有让我的尺寸传递dest作为参数. 我只是想知道(出于好奇)我怎么知道有多大dest,因为我知道这strcpy不能解释这一点。手册页中有一个警告“注意缓冲区溢出!(请参阅错误。)”。

我现在意识到这在 C 中可能是不可能的。

回答

您要问的是您是否可以知道分配了多少内存。

如果它是用 分配的malloc,则没有。

如果它是在堆栈上分配的数组,例如char foo[10],是的,您可以使用sizeof(foo),但这不会告诉您任何您不知道的信息。

如果您需要知道字符串的分配大小,则需要在分配时记住它并传递它。您可以使用额外的变量,或者您可以创建一个struct同时具有字符串和大小的变量。


以上是在C中,有没有办法计算填充了空终止符的已分配内存的大小?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>