gpt4 book ai didi

c++ - Visual Studio 中的调试断言失败

转载 作者:行者123 更新时间:2023-11-28 00:39:56 29 4
gpt4 key购买 nike

我在 visual studio 中收到此错误:调试断言失败!表达式:(L"缓冲区太小"&& 0)

它发生在以下代码行:

program_name = (char *) malloc(strlen(argv[0])+1);
strcpy_s(program_name,sizeof(program_name),argv[0]);

似乎它试图将字符数组复制到的缓冲区的大小太小,但我不确定为什么?

最佳答案

sizeof(program_name) 返回指向 char 的指针的大小。那这不是你想要的。将其替换为 strlen(argv[0])+1 以传递分配的缓冲区的大小。

但是,还要注意,在 C++ 中,最好只使用 std::string:

std::string program_name(argv[0]);

关于c++ - Visual Studio 中的调试断言失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19394563/

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