程序的 编译没有问题。。但是 出错误。。
环境 是 win8 64bit 系统。。。
程序调用了 zgemm 这个函数。。是 intel mkl 里面的函数。。实现矩阵相乘
https://publib.boulder.ibm.com/infocenter/clresctr/vxrx/index.jsp?topic=%2Fcom.ibm.cluster.essl.v5r2.essl100.doc%2Fam5gr_hsgemm.htm
输入的参数都是由主函数传过来的。。已经 通过 new 这种方式定义过了的。。
void MatMultiply( MKL_Complex16* C, MKL_Complex16* opA, MKL_Complex16* opB, __int64 *a, __int64 *b, __int64* c,
MKL_Complex16* alpha/*=NULL*/, MKL_Complex16* beta/*=NULL*/ )
{
//C := alpha*op(A)*op(B) + beta*C,
// op(A) size(l*m) op(B)size(m*n) C size(l*n)
// a =l b =m c=n
MKL_Complex16 cAlpha = {1,0}, cBeta = {0,0};
if(!alpha){
alpha = &cAlpha;
}
if(!beta){
beta = &cBeta;
}
zgemm("n","n",a,c,b,alpha,opA,a,opB,b,beta,C,a); // 就这一句 有问题!!!!!!
//zgemm("n","n",c,a,b,alpha,opB,c,opA,b,beta,C,c);
}
然后反汇编就弹出来一堆:
0000000000000000 ?? ???
0000000000000001 ?? ???
0000000000000002 ?? ???
0000000000000003 ?? ???
0000000000000004 ?? ???
0000000000000005 ?? ???
0000000000000006 ?? ???
0000000000000007 ?? ???
0000000000000008 ?? ???
0000000000000009 ?? ???
000000000000000A ?? ???
000000000000000B ?? ???
000000000000000C ?? ???
000000000000000D ?? ???
000000000000000E ?? ???
000000000000000F ?? ???
0000000000000010 ?? ???
0000000000000011 ?? ???
0000000000000012 ?? ???
0000000000000013 ?? ???
0000000000000014 ?? ???
0000000000000015 ?? ???
0000000000000016 ?? ???
0000000000000017 ?? ???
0000000000000018 ?? ???
0000000000000019 ?? ???
求问题原因?!!!没有找到空指针项。。。
或者怎么看是不是空指针??