gpt4 book ai didi

c - memchr 返回意外字符

转载 作者:行者123 更新时间:2023-11-30 20:59:54 25 4
gpt4 key购买 nike

我正在尽力理解 memchr 函数,但在一些简单的输出方面遇到了一些问题。我在 *newchar 末尾得到了额外的字符。

#include <stdio.h>
#include <string.h>

int main() {
char plus[6] = "12+123";
char *newchar = (char*) memchr(plus,43,3);
printf("%s",newchar);
}

输出:

+123( '

我期望得到“+123”,为什么它给了我额外的字符?我注意到输出是一致的,这让我之前感到困惑,这些输出似乎不是从内存中随机的地方抓取的,而是由 memchr 函数引起的。

最佳答案

char plus[6] = "12+123";

您定义了一个大小为 6 的数组,并用 6 个字符对其进行了初始化。您没有为 NUL 终止符留下足够的空间。字符串末尾有垃圾,并且 printf 不知道何时停止打印它。

改为执行此操作,允许自动调整字符串的大小:

 char plus[] = "12+123";

关于c - memchr 返回意外字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44617914/

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