如果我有一个名为M [4] [4]的4x4数组初始化为全零,那么如何在程序中稍后更改第一行节点的值?
我问的原因是因为在初始化矩阵时,只需要做:
int M[4][4] = {{1, 2, 3, 4}};
但如果我在代码中的其他地方执行此操作,则无法正常工作。
我是否只需要使用循环来完成目标,或者我做错了什么?
答案 0 :(得分:3)
嗯,您不需要自定义功能来执行此操作,您可以使用memcpy
。
double M[2][4] = { {0.1, 0.2, 0.3, 0.4}, {1.2, 1.1, 1.0, 1.4} };
memcpy(M, (const double[4]){1.2, 1.1, 1.0, 1.4}, sizeof(double)*4);
如果您想知道如何编写第二行:
double M[2][4] = { {0.1, 0.2, 0.3, 0.4}, {1.2, 1.1, 1.0, 1.4} };
memcpy(&M[1][0], (const double[4]){1.2, 1.1, 1.0, 1.4}, sizeof(double)*4);