gpt4 book ai didi

objective-c - 如何将未知大小的二维数组作为方法参数传递

转载 作者:太空狗 更新时间:2023-10-30 03:44:20 27 4
gpt4 key购买 nike

我正在尝试传递一个二维数组,其大小可以是动态的,作为方法参数。

在该方法中,我想使用具有一般数组语法的数组。

int item = array[row][column];

传递数组是不可能的,所以我想到了使用指针指针。

- (void)doSomethingWithArray:(int **)array columns:(int)nColumns rows:(int)nRows
{
int item = array[n][m];
}

但是当我尝试将数组作为参数传递时我遇到了问题

int array[numberOfRows][numberOfColumns];

[someObject doSomethingWithArray:array columns:numberOfColumns rows:numberOfRows];

我找到了很多提示和技巧,但不知何故,没有任何东西能真正按照我想要的方式使用。

感谢帮助,恩尼

最佳答案

objective-c 是基于 C99 的吗?

如果是,您可以使用允许您直接传递维度信息的"new"语法。

#include <stdio.h>

void foo(int rows, int cols, int arr[rows][cols]) {
printf("%d, %d\n", arr[0][0], arr[1][4]);
}

int main(void) {
int arr[2][12] = {{1, 2, 3, 4, 5}, {11, 12, 13, 14, 15}};
foo(2, 12, arr);
}

你可以看到 code running on ideone .

关于objective-c - 如何将未知大小的二维数组作为方法参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5909834/

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