pointers相关内容

为什么我不能在 C 中将 'char**' 转换为 'const char* const*'?

以下代码片段(正确)在 C 中给出警告,在 C++ 中给出错误(分别使用 gcc 和 g++,在 3.4.5 和 4.2.1 版本中测试;MSVC 似乎并不关心): char **a;const char** b = a; 我可以理解并接受这一点. 这个问题的 C++ 解决方案是将 b 更改为 const char * const *,这不允许重新分配指针并防止您规避 const-corre ..
发布时间:2022-01-23 23:05:11 其他开发

为什么将“指向非 const 的指针"转换为不合法?指向“指向 const 的指针"

将指向非常量的指针转换为指向常数的指针是合法的. 那么为什么将指向非const的指针转换为指向const的指针是不合法的呢? 例如,为什么下面的代码是非法的: char *s1 = 0;常量字符 *s2 = s1;//行...字符 *a[MAX];//又名字符 **const char **ps = a;//错误! 解决方案 来自标准: const char c = 'c';字 ..
发布时间:2022-01-23 23:01:12 C/C++开发

理解-Weffc++

考虑以下程序: #include 结构 S {S (){}私人的:无效 *ptr = nullptr;std::string str = "";};int main(){} 当在 GCC 4.7.1 上使用 -Weffc++ 编译时,会吐出: 警告:“结构 S"具有指针数据成员 [-Weffc++]警告:但不会覆盖 'S(const S&)' [-Weffc++]警告:或 ' ..
发布时间:2022-01-23 20:27:06 C/C++开发

C++ 隐含了 this,以及它是如何被压入堆栈的

我需要知道,当调用 C++ 中的类方法时,隐式“this"指针是第一个参数还是最后一个参数.即:是先入栈还是最后入栈. 换句话说,我在问一个被调用的类方法是否被编译器认为是: int foo::bar(foo *const this, int arg1, int arg2);//或者:int foo::bar(int arg1, int arg2, foo *const this); 因 ..
发布时间:2022-01-22 13:02:39 C/C++开发

从 pop 函数返回错误的地址

在解决了我的结构的其他问题后,我的推送按预期工作,但是我的弹出返回错误的地址,我不知道为什么 - QNode* const Q_Pop(Q* const pointerQ){...//空检查QNode* tempNode = 指针Q->front.next;指针Q->front.next = (tempNode->next);tempNode->next->prev = &(pointerQ-> ..
发布时间:2022-01-22 12:45:12 其他开发

如何获取基堆栈指针的地址

我正在将应用程序从 x86 移植到 x64.我正在使用 Visual Studio 2009;大部分代码是 C++,有些部分是纯 C.编译到 x64 时不支持 __asm 关键字,并且我们的应用程序包含一些内联汇编程序.我没有写这段代码,所以我不知道 et 应该做什么: int CallStackSize() {双字帧;PDWORD pFrame;__asm{mov EAX, EBPmov 帧, ..
发布时间:2022-01-22 12:28:50 其他开发

volatile 变量作为函数的参数

拥有此代码: typedef volatile int COUNT;COUNT functionOne( COUNT *number );int functionTwo( int *number ); 我无法摆脱一些警告.. 我在 functionOne 原型中收到此警告 1 [警告] 类型限定符被忽略函数返回类型 我得到这个警告 2,无论我用 COUNT pointer 参 ..
发布时间:2022-01-21 22:01:10 其他开发

三星bada开发不使用指针

可以使用下面列出的方法(我知道)创建 C++ 中的对象: 个人 p; 或 人 p("foobar"); 或 Person * p = new Person(); 那么,为什么三星 Bada IDE 不允许我执行前两种方法?为什么我总是必须使用指针?我可以使用指针等等,只是我想知道样式背后的根本原因. 来自 Bada API 参考的示例代码. //创建标签标签 *pLabel = ..
发布时间:2022-01-20 21:51:08 C/C++开发

gdb 显示的地址与代码中的地址不同

我正在尝试实施缓冲区溢出攻击,我需要知道我试图溢出的缓冲区的地址. 使用 GDB 显示的地址与我刚刚在代码中显示的地址不同: 具体代码: #includeint main() {字符缓冲区[20];printf("%p\n", 缓冲区);//0xbffff320返回0;} 但是,如果我这样做,在 gdb 中: p &buffer 我得到:0xbffff330 ..
发布时间:2022-01-20 20:40:29 其他开发

golang 切片中的内存泄漏

我刚开始学习围棋,在学习切片技巧时,有几点非常令人困惑.谁能帮我澄清一下. 在给定的切片中切割元素 方法一: a = append(a[:i], a[j:]...) 但有一个注意事项,如果使用指针可能会导致内存泄漏,推荐的方法是 方法二: copy(a[i:], a[j:])对于 k, n := len(a)-j+i, len(a);k<n;k++ {a[k] = nil/ ..
发布时间:2022-01-20 18:06:22 其他开发

如何在 V8 中存储持久句柄?

我希望我的班级拥有一个 v8::Context 和一个 v8::External 作为成员.因此,我认为我必须使用持久句柄. class ScriptHelper {上市:ScriptHelper(v8::Persistent 上下文) : 上下文(上下文) {//...}//...私人的:v8::Persistent语境;v8::Persis ..
发布时间:2022-01-20 18:03:21 C/C++开发

在 Swift 中从 UIImageView 中检索 UIImage

我找到了解决方案,但它不在 Swift 中:Converting UIImageView to UIImage 我什至通过使用 UnsafeMutablePointed 尝试在 Swift 中实现它而变得流氓并且没有运气. 然而,指针在 Swift 中通常是不受欢迎的,如果有一个简单的单行解决方案就更好了! 示例代码: 让 test1:UIImageView = UIImage ..
发布时间:2022-01-20 16:03:08 移动开发

Go中的临时地址?

处理这种情况的最干净的方法是什么: func a() string {/* 无所谓 */}b *string = &a() 这会产生错误: 不能取a()的地址 我的理解是,如果获取了地址,Go 会自动将局部变量提升到堆中.这里很清楚,要取返回值的地址.处理这个问题的惯用方法是什么? 解决方案 地址操作符返回一个指针,指向具有“家"的东西,例如.一个变量.您的代码中表达式的值 ..
发布时间:2022-01-19 15:35:04 其他开发

C++ 函数返回数组

我对 C++ 有点陌生.我习惯用 Java 编程.这个特殊的问题给我带来了很大的问题,因为 C++ 在处理数组时不像 Java.在 C++ 中,数组只是指针. 但是为什么会出现这样的代码: #include #定义尺寸 3使用命名空间标准;无效 printArray(int*, int);int * getArray();整数 ctr = 0;int main() {i ..
发布时间:2022-01-19 15:17:30 C/C++开发

从没有参数的函数返回整数数组

可能重复: 通过 C 和 C++ 中的函数返回本地数据指针 我需要创建一个返回数组的不带参数的函数 我收到错误:“警告:函数返回局部变量的地址" 为了便于阅读,我的代码已经过简化 int * getNums(){整数 [8];数字 = {1,2,3,4,5,6,7,8};返回数字;} 我被引导明白,当函数结束时指针丢失了,但数组还会被发送吗?如果不是,那么在函数调用中返回这 ..
发布时间:2022-01-19 15:14:12 C/C++开发