2009年12月8日星期二

关于这么一个指针传参数的问题

今天在写一个函数,就是要重新给一个指针分配一块内存。比如
void renew(int * array, int b)
{
     delete [] array;
     int size = 2*b;
     array = new int[size];
     memset(array,13,sizeof(int)*size);
}
void main()
{
     int * array;
     int size = 13;
     array = new int [size];
     memset(array,0,sizeof(int)*size);
     renew(array);
     delete [] array;
}
结果胡折腾了一会,企图修改数组的内容,实际上毛用都没。后来哥悟到了,具体参考这里
不过哥哥有个比那文章稍好点的解决方法,那文章说真要用,就用int **。其实当然也可用一个指针的拷贝,这样具体代码都不用改,那么,请听题,如果修改renew函数的参数?
A) void renew( &(int * array), int b)
B) void renew( int &(*array), int b)
C) void renew( int &* array, int b)
D) void renew( int *& array, int b)

void renew(int *&array, int b)


没有评论:

发表评论