![]() |
1
20
不,没有正确的方法来专门这样做。一
实现后者的最简单方法,即
而是传递这些“索引”数组
一旦函数完成工作,您就可以忘记
|
![]() |
2
5
由于二维数组(一个连续的内存块)和指针数组(不连续的)是非常不同的,所以不能将二维数组传递给使用指针到指针的函数。 你可以做的一件事是:模板。将第二个维度的大小设置为模板参数。
另一种更笨拙的方法可能是让函数接受一个指向一维数组的指针,并将宽度和高度作为参数给出,然后自己将索引计算为二维表示。
当然,一个矩阵应该有它自己的类(但是如果您需要编写助手函数,上面的内容可能仍然是相关的)。 |
![]() |
3
2
既然你正在使用C++,这样做的正确方法是使用自定义类和一些模板。下面的示例相当粗糙,但它得到了基本的要点。
|
![]() |
4
1
二维数组不是指向指针或类似对象的指针。StartMatrix的正确类型是
|
![]() |
5
0
有一个使用指向的指针的解决方案 bobobobo William Sherif(BOBOBOBO)使用了C版本,我只想展示BBOBOBOO的C++版本。
其余代码与bobobobobo的相同。 |
![]() |
6
-1
问题是二维数组与指针数组不同。二维数组一行接一行地存储元素,因此,当传递这样的数组时,只会给出指向开始的指针。接收函数可以计算出如何查找数组的任何元素,但是 只有知道每行的长度 .
所以,您的接收函数应该声明为
|
![]() |
7
-2
如果C++:
所以 界面 将是
并使用它
好处
或者这样
C语言中的一种丑陋的方式
编辑:不会崩溃的MatrixinVersion的参考代码:
|
![]() |
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 6 月前 |
![]() |
Anka Hanım · 关于结构和动态数组地址的问题 6 月前 |
![]() |
tTt · 使用堆栈中的值重新分配指针 7 月前 |
![]() |
manuel · 现代C中空指针的替代方案++ 8 月前 |