【发布时间】:2021-08-28 07:49:22
【问题描述】:
我可以在声明数组的函数中使用指针概念访问数组。但是,我无法从另一个引发错误的函数访问:间接需要指针操作数('int' 无效)。代码是:
#include <stdio.h>
const int ROW = 3;
const int COL = 3;
void printArray(int *ptr);
int main(void)
{
int arr[ROW][COL];
int count = 2;
// initialize 2D array
for (int i = 0; i < ROW; i++)
{
for (int j = 0; j < COL; j++)
{
arr[i][j] = count++;
}
}
// print 2D array
for (int i = 0; i < ROW; i++)
{
for (int j = 0; j < COL; j++)
{
// printf("%i\t", arr[i][j]); // using array
printf("%i\t", *(*(arr + i) + j)); // using pointer
}
printf("\n");
}
printf("\n---------printing using function------------\n");
printArray(&arr[0][0]);
}
void printArray(int *ptr)
{
for (int i = 0; i < ROW; i++)
{
for (int j = 0; j < COL; j++)
{
printf("%i\t", *(*(ptr + i) + j)); // not working as expected
}
printf("\n");
}
}
我该如何解决这个问题?有什么想法吗?
【问题讨论】:
标签: c function pointers multidimensional-array function-definition