首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求教指针函数的有关问题

2012-04-21 
求教指针函数的问题void Function(int* a, int* n){if (a) delete[] (a)a new int[10]memset(a, 0, 10

求教指针函数的问题
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,上面的输不出,除了下面的修改方法之外,还有其他什么不算太复杂的改法吗...老师叫再想两种,求赐教!


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;
}


[解决办法]

C/C++ code
#include <iostream>using namespace std;int *Function(int* a, int* n){    if (a) delete[] (a);    a = new int[10];    memset(a, 0, 10*sizeof(int));    *n = 10;    return a;    }void main(){    int* a = NULL;    int n = 0;    a=Function(a, &n);    for (int i=0; i<n; i++){        cout << "a[" << i << "]=" << a[i] << "\n";    }    if (a) delete[] a;} 

热点排行