我有学校作业,其中包括创建一个程序,该程序可以与Matrix
进行数学运算。在这个程序中,我必须使用typedef
创建Matrix
。使用数组插入所有已声明的对象
This typedef
should hold 4 x 4
Matrix
with double
type。
因此,对于这个位置是我的实现:
typedef struct {
char * name;
double * data;
int elements;
} mat;
在主,我需要定义几个mat
对象是这样的:
mat MAT_A, MAT_B, MAT_C, MAT_D, MAT_E, MAT_F;
而这个用户应该输入的输入,例如:add_mat mat_a,mat_b,mat_c
, 此操作会将2 Matrix
mat_a
和mat_b
添加到mat_c
。
所以之后,该用户输入与Comma\Tab
拆呢,我想写简单的函数,得到了char
这是必要的mat
并返回相关mat
:
例如:
mat getmatrix(char name, mat *mats)
{
int i;
for (i = 0; i < 6; i++)
{
if (strcmp(mats[i].name, "MAT_A") == 0)
{
return mats[i];
}
}
.....
}
对于这一点,我插入我所有的垫物进入array
:
mat mats[] = { MAT_A, MAT_B, MAT_C, MAT_D, MAT_E, MAT_F };
但我得到这个错误我所有mat
对象:
未初始化的局部变量“MAT_A”使用
关于如何解决它也许找到另一种方式来读取输入的任何建议?
任何建议如何解决它? =>代码中没有'MAT_A' => [mcve]。 – Stargateur
寻求调试帮助的问题(“为什么这个代码不工作?”)必须包含所需的行为,特定的问题或错误,以及在问题本身中重现问题所需的最短代码。没有明确问题陈述的问题对其他读者无益。请参阅:如何创建[mcve]。 – Stargateur
如果矩阵大小是4x4,则使元素成为指针没有意义。只要在结构中加入“double data [4] [4];'就可以简化很多事情。 – unwind