我在访问传递给函数的数组的元素时遇到了一些问题。访问类型为def的指针数组的元素
#define N (128)
#define ELEMENTS(10)
typedef int (*arrayOfNPointers)[N];
所以,如果这是正确的,它是描述N
指针数组int
的数据类型。
后来我单独初始化我的阵列,像这样:
arrayOfNPointers myPtrs = { 0 };
int i;
for (i=0; i<N; i++) {
myPtrs[i] = (int*)malloc(ELEMENTS);
}
然而,这种失败,出现以下错误:
error: incompatible types when assigning to type 'int[128]' from type 'int *'
因此,似乎有什么东西在我的语法非常错误的。但在另一块代码中,我正在修改某些这样的结构的内容,所以我没有任何问题。
void doWork(void* input, void* output) {
int i,m,n;
arrayOfNPointers* inputData = (arrayOfNPointers*)input;
int* outputData = (int*)output;
for (m=0, n=0; n<nSamples; n++) {
for (i=0; i<nGroups; i++) {
outputData[m++] = (*inputData)[i][n];
}
}
}
这个数组逻辑严重破坏了吗?
在第二个例子中,'pIn'和'pOut'是什么类型? – 2013-04-23 21:03:22