Показать сообщение отдельно

  #2007  
Старый 11.12.2008, 21:13
sungirl
Новичок
Регистрация: 10.12.2008
Сообщений: 1
С нами: 9166942

Репутация: 0
По умолчанию

Есть проэкт в Visual Studia 6. Программа создаёт dll файл, при помощи которого в MATLAB передаются данные с С++. Проблема в том,что по здравому смыслу у меня величины x и m должны быть одинаковые. А программа выдаёт совершенно немыслимые числа для m. Помогите разобраться,пожалуйста.
#include <mex.h>
#include <math.h>
#include <stdio.h>
#include <string.h>
#define raz 20

//Prototype:
void MyEmptyMexFunction(int,int, double*, double*);
//--------------------------------------
void mexFunction(int nOut,
mxArray* pOut[] )
{
int mm=20,nn=1; double *pO; double *pO1;
if (nOut > 0)
{

pOut[0] = mxCreateDoubleMatrix(mm,nn,mxREAL);
pOut[1] = mxCreateDoubleMatrix(mm,nn,mxREAL);

pO = mxGetPr(pOut[0]);
pO1 = mxGetPr(pOut[1]);

MyEmptyMexFunction(mm,nn,pO,pO1);

}

}

//------------Our own auxilary function----------------

void H(double* x, double* aq)
{
int i;
for (i=0;i<raz;i++) aq[i]=x[i];
}


void MyEmptyMexFunction(int mm, int nn, double* pO, double* pO1)
{

double x1[raz];

int n;
int i;

double m[raz];
double x[raz];

x[0]=-10;
n=0;

H(x,x1);
do
{

x[n+1]=n;
m[n]=x1[n];

n++;

}
while(n<raz-1);
for (i=n;i<raz;i++)
{
m[i]=333;
x[i]=333;
}

memcpy(pO, m, i*sizeof(double));
memcpy(pO1, x, i*sizeof(double));
}
 
Ответить с цитированием