问题标签 [raw-pointer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 重载运算符错误>>
试图operator>>
用于我的班级飞机,我的main()
. 它说
我的主要():
我的阅读():
运营商>>
:
它在(.h)中:
朋友 std::istream& 运算符>> (std::istream& is, Aircraft& A);
它在(.cpp)中:
至于以某种方式使用,像这样,它是完美的:
我做错了什么?
rust - 如何获得下一个指针?
我有一个用 C 实现的函数,我想用相同的接口用 Rust 编写一个函数。该函数接收指向数组开头的指针 ( win8_t *
) 和数组的长度。我需要能够遍历数组。
必须有更好的方法来获取下一个值,但现在我可以做这个奇怪的事情:
c++ - C++ 处理堆上的对象
我目前正在使用 Visual Studio 2017 学习 C++,来自 C#/Java 背景。
我有一个关于在堆上创建对象并在以后正确引用它们的问题。到目前为止,我遇到了多个教程和做事方式。有些人建议尽可能多地使用智能指针,有些人则发誓它是魔鬼工具。
我目前的主要看起来像这样:
一个函数处理个人数据的输入并返回一个指向新 Person 对象的指针。然后我有一个函数通过获取父引用并询问 makePerson 剩余数据来处理子对象的创建。
这可以被认为是好的 C++ 吗?我怎样才能让它变得更好?我真的很感激一些代码示例。
正如一些人已经建议的那样,我可以用shared_ptr<Person> person
(重)或unique_ptr<Person>
(比共享更好)替换原始指针。
这是 Person 和子类的代码。请注意, Child 有一个类型为 的原始指针Person *parent
。
孩子是一个人,孩子知道孩子的父母是谁是有意义的。但是,我不确定如何处理这些“知识”。这是我用于子类的代码:
这是我得到的输出:
我想我的问题仍然存在,谁能给我一个例子,说明它应该如何被认为是好的 C++?
@user4581301 如果您查看更新后的 main,您的意思是我应该返回 astd::unique_ptr
而不是 a* (raw pointer)
吗?在这种情况下,我的函数将如下所示:
变量声明为:
这会被认为比我迄今为止所拥有的“更好”的 C++ 吗?
rust - 如何使包含 Arc 的结构字段可写?
我有一个必须以原始指针形式检索的结构。
我需要写入它的map
字段,所以我将原始指针取消引用到结构中,然后尝试写入它的数据字段。但是,我收到以下错误。
如何使map
字段可变和可写?
使用以下代码可重现该错误:
箱:memmap = "0.6.2"
pointers - 我应该如何决定何时或多或少地适合使用原始指针?
我的印象是,Rust 旨在用于高度安全的系统。然后我注意到原始指针允许任意指针算术,它们会导致内存安全和安全问题。
c++ - 将(C 类)指针转换为 C++ 矩阵
我想将矩阵从一个函数传递到另一个函数,所以我做了:
如何让通话init_matrix()
更轻松?我想象它像init_matrix(x, N)
。
请注意,我有点避免std::vector
,因为我很快就会使用并行编程(pthreads、OpenMP、MPI)。所以我会要求一个没有std
构建矩阵方法的解决方案。
reference - CString::new().unwrap().as_ptr() 给出空 *const c_char
我有一个期望的 C 函数,*const std::os::raw::c_char
并且我在 Rust 中完成了以下操作:
但是,我无法_test_str
打印出来,上面程序的输出很简单
如果我将它传递给_test_str
某个 C 函数并看到它是一个空字符串。我做错了什么?
c++ - removing shared pointers from vector or map
I am currently in the process of learning smart pointers and try to avoid using raw pointers.
I have a vector with shared ptrs
and an Add and Remove method
Now in another part of my code I have a map
Now when I try to remove elements from the map like this:
Now the problem lies here : iterator->second.get()
It tells me it cannot convert the rvalue of type pointer to shared ptr.
However if I use raw pointers instead of shared pointers this is not an issue at at all.
So, I am wondering if in this case it would be better to just use raw pointers or can I work around this with shared pointers?
c++ - 在 C++ 中为我自己的基于指针的数组分配内存的正确方法
我搜索了类似的问题,但找不到任何满足我需求的问题。
我是一名计算机科学专业的学生,目前正在学习算法和数据结构。对于我的考试,我必须用 C++ 实现一组模板化数据结构。我不被允许使用 STL,因为这是一个关于如何实现类似于 STL 的库的考试问题。
我的实现有效,但是我想向您询问有关动态内存分配的建议。
其中一些数据结构使用动态数组(实际上是原始指针)来存储元素,当满时自动增长并在某个负载因子阈值下收缩(分别将其大小加倍和减半)。为了简单起见(也因为我不应该使用它们),我没有使用任何“现代东西”,例如智能指针或移动构造函数/运算符 =,基本上我依赖于 C++98特征。我使用了 new [ ]和delete [ ],但我到处都读到这是一种不好的做法。
我的问题是:在 C++ 中处理基于数组的数据结构的动态内存分配的正确方法是什么?
这是我所做的一个示例(该数组先前已由 new [ ] 分配):
rust - 将 *mut T 强制转换为 *mut ManuallyDrop 是未定义的行为吗?
根据文档,ManuallyDrop<T>
是一个零成本的包装器。这是否意味着我可以取消引用ManuallyDrop<T>
从原始指针转换为的原始指针T
?