-1

我尝试将多维数组作为参数传递给方法。在此方法中,对数组的引用应存储在另一个变量中。这一切似乎都有效,但是当我尝试通过我的新变量访问数组时出现错误。

这是我的代码:

-(void)renderMap:(char[MAP_HEIGHT][MAP_WIDTH])mapData {
        char* data;
        data = *mapData;
        NSLog(@"%c", data[1][1]); // Subscripted value is not an array, pointer, or vector
}
4

3 回答 3

0

你可以试试这个

char (*data)[MAP_WIDTH] = mapData
NSLog(@"%c", data[1][1]); 
于 2013-09-22T00:46:20.100 回答
0

尝试直接通过 引用mapData,不使用data = *mapData.

于 2013-09-21T22:40:18.440 回答
-1

mapData不是二维数组,所以不能使用双括号。您必须通过计算每个元素行的偏移量来访问每个元素:

NSLog(@"%c",data[1*MAP_HEIGHT+1]);
// Generic way:
NSLog(@"%c",data[row*MAP_HEIGHT+column]);
于 2013-09-21T23:01:13.637 回答