如何定义复杂的指针数组?

zhangfjj 2003-10-20 12:46:45
请问:
如何定义一个指针数组,有四个元素,每个元素为一指向长度为4的int型数组的指针?
我遍思不得其解,只好请高手指教了!

...全文
133 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangfjj 2003-10-22
  • 打赏
  • 举报
回复
谢谢大家
zhangfjj 2003-10-20
  • 打赏
  • 举报
回复
请问:
如何定义一个指针数组,有四个元素,每个元素为一指向长度为4的int型数组的指针?
我遍思不得其解,只好请高手指教了!

就是类似于如何定义C中的二维数组
TianGuangZao 2003-10-20
  • 打赏
  • 举报
回复
to zhangfjj(小张):
顺手画了个图:
///////////////////////////////// iarr //
///////////////////// ---------->+-----+
//////////////////// - ///////// |-----|
///////////+-----+/ - ////////// +-----+
///// parr | ....| - /////////// |-----|
///////////+-----+ ------------->+-----+
///////////| ....|- //////////// |-----|
///////////+-----+ ///////////// +-----+
///////////| ....|- //////////// |-----|
///////////+-----+ ------------->+-----+
///////////| ....|- //////////// |-----|
///////////+-----+ - /////////// +-----+
/////////////////// - ////////// |-----|
//////////////////// ----------->+-----+
//////////////////////////////// |-----|
//////////////////////////////// +-----+
//////////////////////////////// |-----|
//////////////////////////////// +-----+
////////////////////////////////////////
Jupin 2003-10-20
  • 打赏
  • 举报
回复
如何定义一个指针数组,有四个元素,每个元素为一指向长度为4的int型数组的指针?

==============================================================
int (*p[4])[4];

在举几个例子:
int (*p[10])(void); p是10个指针组成的数组,每个指针指向一函数,每个函数返回一个整型
int *(p[10])(char *a); p是10个指针组成的数组,每个指针指向一个函数,函数的参数是一个字符指针,函数返回一个整型指针
TianGuangZao 2003-10-20
  • 打赏
  • 举报
回复
要模拟的也可以,只要你喜欢:

#include <stdio.h>

int main()
{
int iarr[16] = { 0,1, 2, 3, 4, 5, 6, 7,
8,9,10,11,12,13,14,15 };
int *parr[4];
int i, j;
for ( i = 0; i < 4; ++i)
parr[i] = &iarr[4*i];

for ( i = 0; i < 4; ++i)
for ( j = 0; j < 4; ++j)
printf ("%d\n", parr[i][j]);
}
Darkay_Lee 2003-10-20
  • 打赏
  • 举报
回复
std::vector<std:vector<int> >
zhangfjj 2003-10-20
  • 打赏
  • 举报
回复
我知道二维数组可以呀,就是想模仿二维数组!
TianGuangZao 2003-10-20
  • 打赏
  • 举报
回复
to zhangfjj(小张):
只要你愿意,都可以。
其实一个二维数组就可以满足你的要求了。
int twoDimArr[4][4];
twoDimArr[i] 就是指向每一行的指针。每一行为一个整数数组,有4个元素。
zhangfjj 2003-10-20
  • 打赏
  • 举报
回复
回复人: cfpp1234(cfpp1234) ( ) 信誉:100 2003-10-20 01:10:00 得分:0


>>> 指针数组
不明白你的意思, 是不是 int *pi[4];

>>> 每个元素为一指向长度为4的int型数组
你問得不明不白得
是指向长度为4的int, 每個int有4 byte, 共16byte ?
還是指向长度为4byte的一個int, 共4byte ?

請說得明白一點.
----------------
我的意思是指向有四个元素的数组。

zhangfjj 2003-10-20
  • 打赏
  • 举报
回复
回复人: TianGuangZao(天光早) ( ) 信誉:100 2003-10-20 01:34:00 得分:0


int * ptrArr[4];
int i;
for ( i = 0; i < 4; ++i)
ptrArr[i] = (int *) malloc(4 * sizeof int);
-----------------------------------------------
能不能不用动态函数,直接定义这样的指针数组呢?请问天光早先生!?
TianGuangZao 2003-10-20
  • 打赏
  • 举报
回复
int * ptrArr[4];
int i;
for ( i = 0; i < 4; ++i)
ptrArr[i] = (int *) malloc(4 * sizeof int);
fscanf 2003-10-20
  • 打赏
  • 举报
回复
int *pr[4];
cfpp1234 2003-10-20
  • 打赏
  • 举报
回复
>>> 指针数组
不明白你的意思, 是不是 int *pi[4];

>>> 每个元素为一指向长度为4的int型数组
你問得不明不白得
是指向长度为4的int, 每個int有4 byte, 共16byte ?
還是指向长度为4byte的一個int, 共4byte ?

請說得明白一點.

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧