gpt4 book ai didi

c - 如何使用 strncat 而不担心缓冲区溢出问题?

转载 作者:太空狗 更新时间:2023-10-29 16:50:34 27 4
gpt4 key购买 nike

我有一个缓冲区,我正在做很多 strncat。我想确保我永远不会溢出缓冲区大小。

char buff[64];

strcpy(buff, "String 1");

strncat(buff, "String 2", sizeof(buff));

strncat(buff, "String 3", sizeof(buff));

我想说的不是sizeof(buff),而是buff——xxx。我想确保我永远不会覆盖缓冲区

最佳答案

考虑现有字符串的大小和空终止符

#define BUFFER_SIZE 64
char buff[BUFFER_SIZE];

//Use strncpy
strncpy(buff, "String 1", BUFFER_SIZE - 1);
buff[BUFFER_SIZE - 1] = '\0';

strncat(buff, "String 2", BUFFER_SIZE - strlen(buff) - 1);

strncat(buff, "String 3", BUFFER_SIZE - strlen(buff) - 1);

关于c - 如何使用 strncat 而不担心缓冲区溢出问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6903997/

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