该结构数组数目和内容事前未知,我希望通过一个函数,求出结构数组,该结构为sc,我从前定义是,fun1(sc* sc1,int &numSc),在函数体内求值,都对,可一返回,调用地方都不对了,我知道应该是:
fun1(sc** sc1,int&numSc),可我从定义到赋值使用到返回,都不会。希望各位莫笑话我,耐心一点,给出个例子,越完整越好。
fun1(sc** sc1,int&numSc),可我从定义到赋值使用到返回,都不会。希望各位莫笑话我,耐心一点,给出个例子,越完整越好。
解决方案 »
- 真的假的,关于c++ 2009新标准
- dll加载出错
- 一个基于对话框的程序,把背景设为一张位图,为了便于显示文本,我将Static Test的背景都设置为透明。然而Group Box的Caption却与Group B
- 关于在COM组件里创建隐藏窗体的问题()
- 打印问题!SOS
- CreateProcess的当前进程的当前目录是什么?
- 请问如何将属性页中的按钮(Back,Next,OK等)自类化成我自己定义的按钮类的对象?
- 又是关于hook的,请高手看看
- 如何将图标句柄保存成图标文件?
- help! CAsyncSocket::OnReceive()在什么时候调用?
- 怎样比较比较两个结构体数组的内容是否相同?而数组的顺序无关。
- 如何读取网页上的图片
...
{
sc* pSc[n]; i = 0;
while(i<n){
pSc[i++] = new sc;
} loop(n,1)
{
*sc1 = pSc[;
sc1+= sizeof(sc);
}
}
{
*sc1 = new sc[10];
for(int i=0;i<10;sc1[i++]->nMember=i);
num=10;
}
一般说往外传数组,调用者要管释放的Fun( struct tagABC ** ppOut, ULONG * pCount )
sc **sc1=NULL;
xx(sc1,num); //调用吗?
使用完毕后,delete[] sc1; //释放内存
对吗?
函数定义fun1(sc **sc1,int &num)
{}
函数定义fun1(sc **sc1,int &num)
{
num=GetNum()....; //获取数目
*sc = (sc *)calloc(num,sizeof(sc)); //分配空间
...
} 调用处:
sc* scVaule=NULL;
int num;
fun1(&scVaule,num);
a=scVaule[1].member1;
...
if (scVaule!=NULL) free(scVaule); //????此句报错!内存堆错误,程序跳出。编译后试用都正常(前提,去掉最后一句),但我心虚虚的,希望大家帮忙过一过,尤其最后一句,函数体外释放出错,怎么回事?另外,若我每个指针都sc1++,最后指针应指向最后一个;那指针应怎样指回头指针,是sc1-num吗?