gpt4 book ai didi

c++ - unsigned char inbuf[1024000] 抛出 EXEC_BAD_ACCESS

转载 作者:行者123 更新时间:2023-11-30 02:56:41 25 4
gpt4 key购买 nike

我正在使用最新的 SDK 开发 iOS 应用程序。

此应用有一些 C++ 类。

当我调用该类的方法时出现错误:

这是 C++ 类的一部分。

#ifdef __APPLE__
const char* path = jFileName ;
const char* tempPath = jTempFileName ;

const char* truckPath = jTruckFileName;
const char* truckTempPath = jTruckTempFileName;
#endif

MyFunction(path,tempPath);

MyFunction(path,tempPath); 上,pathtempPath 具有有效值。

但是,我在这里得到了错误:

void MyFunction(const char* inFileName, const char* outFileName)
{
[ ... ]
unsigned char inbuf[1024000], outbuf[1024000];

[ ... ]
}

添加注释我发现错误在这里:unsigned char inbuf[1024000], outbuf[1024000]; 当我的函数只有那一行时。

此错误仅出现在设备上。

我怎么知道问题出在哪里?

最佳答案

你的堆栈没有那么大:

 unsigned char inbuf[1024000], outbuf[1024000];

改为使用堆分配:

std::vector<unsigned char> inbuf(1024000, 0), outbuf(1024000, 0);

或者将您的工作分开,以便可以使用较小的堆栈缓冲区。


编译器不需要将您的缓冲区放在堆栈上,但在这种情况下它可能有。

关于c++ - unsigned char inbuf[1024000] 抛出 EXEC_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15270832/

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