gpt4 book ai didi

objective-c - 数组下标不是整数

转载 作者:太空宇宙 更新时间:2023-11-04 00:41:43 24 4
gpt4 key购买 nike

int i;

va_list objects_list;
va_start(objects_list, objects);
for (id o = objects, i = 0; o != nil; o = va_arg(objects_list, id), i++);
objectsInArray = malloc(sizeof(id) * i);
va_end(objects_list);

// ... (malloc NULL checking is here, does not involve i)

va_start(objects_list, objects);
for (id o = objects, i = 0; o != nil; o = va_arg(objects_list, id), i++) {
objectsInArray[i] = o;
}
va_end(objects_list);

我在 objectsInArray[i] = o; 行收到一个 Array subscript is not an integer 错误。 objectsInArray 声明为 id *objectsInArray

i 是一个 int,那么为什么会出现此错误,我该如何解决?提前致谢。

最佳答案

i 在 for 循环中属于 id 类型。要解决不明确的语法,请在 for(...) 语句之外声明 id o

在 Xcode 中,在项目设置下,启用“隐藏局部变量”的警告,这样编译器就会对此类事情发出警告。否则,在使用 gcc 时,请使用 -Wshadow

关于objective-c - 数组下标不是整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5449603/

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