【发布时间】:2013-07-30 10:09:34
【问题描述】:
我有一个疑问。
我有一个矩阵,我知道它将有 3 列,但行数将在存储矩阵的类的构造函数中定义。然后我将变量声明为
int * ColorsYUV[3];
但是当我尝试使用 malloc 分配它时:
ColorsYUV = (int *) malloc(sizeof(T) * 8 * sizeof(int) * 3);
我收到此错误:
incompatible types in assignment of ‘int*’ to ‘int* [3]’
我该如何解决这个问题。我意识到的唯一想法是使用一个简单的向量并访问它,添加一个从 0 到 2 的“for”循环,但是,如果可能的话,我更喜欢像矩阵这样的访问。
ColorsYUV[i][0]...
ColorsYUV[i][1]...
ColorsYUV[i][2]...
我希望我能解释一下我自己... 提前致谢。
【问题讨论】:
-
是 C++ 还是 C?因为它们是相当不同的,所以请调整你的标签。
-
我正在使用 C++,但我坚持认为指针规则在 C 和 C++ 中是相等的。我是新手,我在 C++ 中只有 2 周,请不要强硬。我认为我克服了其他答案的麻烦,但感谢您花时间阅读我的问题。
-
@Bardo91 指针在两种语言中几乎相同,但此类问题的 C++ 解决方案不使用指针; C解决方案可以。 (你写的基本上是C。永远不会用C++写。)
-
哦,我不知道。我相信即使在 C++ 中,像 C 分配一样分配总是更好。再次感谢。我会检查我的整个代码
标签: c++ c vector matrix malloc