gpt4 book ai didi

c - 使用 strcpy 函数时缓冲区溢出

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

我正在尝试使用 strcpy 将一个字符串放入一个字符串数组中。这是我对数组的定义:

char movies[10][150], movie[150];
int i = 0, j = 0;

currentChar = getchar();

while(currentChar != EOF)
{
while(currentChar!='\n')
{
movie[i] = currentChar;
currentChar = getchar();
i++;
}

strcpy(*(movies + j*10*15), (char*)movie);
j++;
currentChar = getchar();
}

尝试在 C++ 控制台中对其进行调试时,我收到“缓冲区太小”消息。

注意:我的输入是 “未刮 mustache 的 Django :有点血腥,但总体来说是一部可靠的电影”不超过 150 个字符。

感谢您的帮助。

编辑:编辑代码以显示全貌

最佳答案

您应该改用此代码:

strcpy(movies[j], movie);

恕我直言,定义一个二维数组然后像使用一个定义为 char[1500] 的大型一维数组一样使用它是没有意义的。

此外,您使用哪个编译器为 C 代码生成这样的消息?

关于c - 使用 strcpy 函数时缓冲区溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23991341/

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