|
下面的c代码中(前面初始化的部分省略了),zeros是我自己定义矩阵结构体的函数,我设置了3个输出,但是每次只能输出"step1"
如果我把UARTStringPut放到zeros里面就能输出"step1"和"step2"了,但是还是不能输出step3。感觉好奇怪啊,有没有大神给我解释下。
(矩阵类的定义和zeros的定义在最下方)
struct _Matrix rowimg;
struct _Matrix theta1;
struct _Matrix theta2;
GrContextForegroundSet(&sContext, ClrBlack);
GrRectFill(&sContext,&sRect);
GrContextForegroundSet(&sContext,ClrBlue);
GrContextFontSet(&sContext,&g_sFontCm20b);
zeros(&rowimg,1,400);
UARTStringPut(UART0_BASE,"step1\n");
zeros(&theta1,25,401);
UARTStringPut(UART0_BASE,"step2\n");
zeros(&theta2,10,26);
UARTStringPut(UART0_BASE,"step3\n");
附:
struct _Matrix
{
int m;
int n;
float *arr;
};
void zeros(struct _Matrix *m,int a,int b)
{
int i,j;
m->m=a;
m->n=b;
m->arr = (float *)malloc(m->m * m->n * sizeof(float));
for(i=0;im;i++)
{
for(j=0;jn;j++)
{
*(m->arr+i*(m->n)+j)=0;
}
}
return;
}
|
|