gpt4 book ai didi

objective-c - c/objective-c 中的数组指针

转载 作者:行者123 更新时间:2023-12-03 01:27:15 25 4
gpt4 key购买 nike

我在 c/objective c 中遇到数组指针问题。当我执行代码时,我收到错误访问错误消息。我确定了导致应用程序崩溃的语句:

unsigned char *image[640][480][4];

如果我将语句更改为:

unsigned char *image[640][10][4];

程序不会崩溃。

此语句也会使应用程序崩溃:

unsigned char *bla[1000][180];

知道为什么数组的大小会导致崩溃发生吗?这只是一个数组指针的声明。

我正在运行带有 IOS 5 目标的 Xcode 4.2.1。

最佳答案

iOS的主线程堆栈可以hold up to 1MB ,但你的数组是 640 * 480 * 4 * sizeof(unsigned char*) 字节,大约是 4.68MB。因此,此分配在主线程上无法成功。您应该使用动态分配,这将使用堆中的内存。

如果您真正的意思是 image 是一个指向三维数组的指针,我鼓励您使用 typedef 使其更易于阅读:

typedef unsigned char image_array[640][480][4];
image_array* pointer = ...; // pointer to 640 * 480 * 4 unsigned chars

关于objective-c - c/objective-c 中的数组指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8865307/

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