gpt4 book ai didi

c - 如何让我的程序中止(没有任何库)

转载 作者:太空宇宙 更新时间:2023-11-04 04:35:08 25 4
gpt4 key购买 nike

我在类里面有一个练习,我必须复制 strstr() C 中的函数(来自 <string.h> 库)。这是我的代码

char *ft_strcpy(char *dest, char *src)
{
int i;

i = 0;
while (src[i] != '\0')
{
dest[i] = src[i];
i++;
}
dest[i] = '\0';
return (dest);
}

此代码功能齐全,但当我尝试使用 dest 时小于 src 的字符串字符串,它显示了一个不可预测的结果,最终覆盖了 src也。原文strstr()函数对此的回答是在这种情况下中止程序。鉴于我无法使用 abort(),我怎样才能让我的程序中止?功能?

最佳答案

您必须检查您的字符串。可能其中之一为 NULL。

当你这样做时:While (str[i] ..)

你不知道 (str) 是否为 NULL。

做:虽然 (str && str[i] != '\0')

更好。

您还可以检查 dest 是否适合 malloc,因为如果您的字符串 dest 没有任何内存,您将无法分配值。

关于c - 如何让我的程序中止(没有任何库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31425188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com