打印

指针函数问题

[复制链接]
805|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gxgclg|  楼主 | 2012-3-18 10:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void Function(int* a, int* n){
if (a) delete[] (a);
a = new int[10];
memset(a, 0, 10*sizeof(int));
*n = 10;
}
void main(){
int* a = NULL;
int n = 0;
Function(a, &n);
for (int i=0; i<n; i++){
cout << "a[" << i << "]=" << a[i] << "\n";
}
if (a) delete[] a;
结果是要输出i个0,上面的输不出,除了下面的修改方法之外,还有其他什么不算太复杂的改法吗

相关帖子

沙发
老电工1979| | 2012-3-19 12:24 | 只看该作者
:dizzy:不太懂

使用特权

评论回复
板凳
wuyuehua19| | 2012-3-19 16:47 | 只看该作者
这个是指针函数吗?只是参数有指针而已。
在函数里只能修改指针所指的内容,不能改变本身的值。
所以 a = new int[10]的值是带不出来的,而且存在内存泄露。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

177

主题

1653

帖子

1

粉丝