该函数需要一个指向二维数组[4][5]的指针.实际上,我们可以提交一个指向一维数组[20]的指针.Ie源代码如下所示:
extern f (int a[4][5]);
int b[20];
void func (void)
{
f (b);
}
这是完美的工作代码(如果内部的数组b,我们将像他们在一个二维数组的布局)。不过,汇编将发出警告(由于类型不足):
$ gcc t.c -c
t.c: In function 'func':
t.c:7: warning: passing argument 1 of 'f' from incompatible poin
我有一个二维数组,如下所示:
void getC(int **p)
{
*p = &c[0][0];
}
int c[10][10];
int *a;
getC(a);
a[0][0];
it says error: no match for 'operator[]' in `a[0][0];` what is the problem and how to fix it?
当我试图在global二维数组中声明C++时,如下所示:
int maxX = 10;
int maxZ = 10;
SDL_Rect mapX[maxX][maxZ];
我有个错误说
error: variable-size type declared outside of any function
我在理解多维数组方面有很多问题。让一个数组是
x[2]; // now x is constant pointer to first element i.e x's name is address of x[0]
现在二维数组:
x[2][5]; // here x is address of x[0] which contains the address of first element of array x[][0];
现在指针
int(*y)[5];
指向整数数组5的指针。如何编写y = x
现在,我做了一些实际的工作来理解VS,这就是这里,我的主要问题是在图像中:
请从概念
我做C# excel互操作。我从C#调用宏,并期望对象数组。我能够从返回二维数组的宏中获得对象的二维数组。
然而,另一个(第三方)宏应该返回一个一维数组.我无法让(object[])xlApp.Run(...)正常工作(它会引发异常),调试器中的类型信息表示结果是Object[*]类型。来自异常的实际消息是
Unable to cast object of type 'System.Object[*]' to type 'System.Object[]'.
这个Object[*]类型是什么,如何从它检索一维数组?
编辑:在我看来,这可能意味着变体的SAFEARR
为了学习的目的,我把二维字符串数组分解成指针,在C中乱搞。
我编写了以下内容,构造了一个二维字符串数组:
#include <stdio.h>
#define ARR_SIZE 10
#define STR_LEN 20
int main() {
// Each string in our 2D array has STR_LEN bytes of space
char arr[ARR_SIZE][ARR_SIZE][STR_LEN];
for (int i = 0; i < ARR_SIZE; i++) {
for (int j