GNUPLOT C API如何知道指针在哪里结束
How does gnuplot C++ api know where a pointer ends?
我想在C 中绘制热图,我遇到了此代码:用c
中的gnuplot绘制热图在 gp.send2d(frame);
中,所有函数send2d所看到的是float*,那么它如何知道尺寸(4x4)?甚至可以安全访问16个元素?
数组的大小是其类型的一部分。在示例中,您链接到frame
是float[4][4]
。由于send2d()
被称为
template <typename T> Gnuplot &send2d(const T &arg)
它将推导T
的类型为float[4][4]
,并将arg
作为参考。扩展看起来像
Gnuplot &send2d(const float (&arg)[4][4])
表明arg
是参考2D数组。由于我们有参考,因此在这里没有腐烂的指针。
这是一个示例,该示例表明,使用参考文献维护数组trype而不是腐烂到指针
template<typename T>
void foo(T & arr_2d)
{
for (auto& row : arr_2d)
{
for (auto& col : row)
std::cout << col << " ";
std::cout << "n";
}
}
int main()
{
int bar[2][2] = {1,2,3,4};
foo(bar);
}
输出:
1 2
3 4
实时示例
相关文章:
- C++我需要了解在哪里使用指针和双指针
- 对象指针在c++中是如何工作的
- 这个指针在c++中的用法
- 未定义的引用在哪里
- 谷歌测试中的期望值存储在哪里
- 尽管遵循了规则,内存泄漏在哪里
- 静态数据成员模板专用化的实例化点在哪里
- 使用结构成员指针在C++中填充结构
- 基类指针:在哪里使用 new 和 delete
- C++ - 函数中的局部指针变量具有什么类型的存储持续时间以及它们存储在哪里?
- 在哪里放置指针
- 当我删除数组时,指针在哪里?指向数组的指针与数组中的元素之间的区别
- GNUPLOT C API如何知道指针在哪里结束
- 数组的指针,该数组的每个元素的内存空间信息存储在哪里
- 编译器在数组到指针衰减存储中生成的指针在哪里
- 指向非指针变量结构的指针。这些变量在哪里,堆还是堆栈?
- 内存运行时错误:我们在哪里删除这个指针
- 在这段代码中new创建的指针在哪里被删除?
- 如何使用KDevelop查看在哪里引用空指针
- 指针应该在哪里