游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2428|回复: 4

关于数组指针……

[复制链接]

9

主题

174

帖子

175

积分

注册会员

Rank: 2

积分
175
发表于 2003-11-5 20:54:00 | 显示全部楼层 |阅读模式
请问如何在函数原型中声明数组指针?

int func( BYTE *array[NUM][NUM])

声明后,该如何使用?

class test
{
public:
private:
BYTE test[10][10]
}

int use()
{
func( &test.test)
}

谢谢~~ [em5]

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2003-11-5 20:58:00 | 显示全部楼层

Re:关于数组指针……

int func( BYTE array[NUM][NUM])
func(test.test)

即可,已经是指针了,再加一个星星干嘛,吼吼~

9

主题

174

帖子

175

积分

注册会员

Rank: 2

积分
175
 楼主| 发表于 2003-11-5 21:33:00 | 显示全部楼层

Re:关于数组指针……

哦……谢谢~~~

15

主题

109

帖子

109

积分

注册会员

Rank: 2

积分
109
QQ
发表于 2003-11-6 08:35:00 | 显示全部楼层

Re:关于数组指针……

参数是一个数组的指针,可以将他理解为一个双指针的方式进行处理
例如:

int **a;
a = new int[m];
for(int i=0;i<m;i++)
  a = new int [n];

func(a);

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2003-11-6 11:14:00 | 显示全部楼层

Re:关于数组指针……

楼上的,你这种做法很危险的。

因为在func函数里面不知道a的大小,很容易溢出的,传指向指针的指针的时候, 一定要记得带个size,否则出错了都8知道怎么错的。

说个经验,以前我也很喜欢这样写,后来有一次出了个非常诡异的错误,我写了一句printf("hehe\n")就正常了,原因就是因为有地方内存溢出,然后溢出了不知道往什么地方写了个东西,导致出错。这种错误非常难查,为了避免这种错误,建议在对内存进行操作的时候,都带上一个size。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-23 23:24

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表