ICode9

精准搜索请尝试: 精确搜索
  • C中的空指针2019-10-08 14:06:05

    在C中我声明一个空指针是int * p = 0,这是否意味着零是整数指针类型的某个特殊常量,或者它是否意味着p指向地址0x0? 当然,对于那个0x0必须是C在变量/数组分配期间从不接触的特殊地址.解决方法:C标准定义整数常量0转换为空指针.这并不意味着空指针指向地址0x0.它只是意味着当转换为指

  • 在C/C++中编写“指向某事物的指针”的好方法2019-10-08 12:09:13

    在C/C++中编写“指向某事物的指针”有“好”的方法吗? 我用来写void foo(char * str);但有时我发现它非常不合逻辑,因为str的类型是“指向char的指针”,那么将*附加到类型名称应该更合乎逻辑.写指针有规则吗? char*str; char* str; char *str; char * str; 解决方法:常见的C约定是

  • c – 如何实现observer_ptr?2019-10-08 04:06:35

    我想在我的项目中使用observer_ptr,但paper只定义了接口,而不是完整的实现. 有没有一种简单的方法可以自己实现它?解决方法:您可以通过创建带有NOP删除器的unique_ptr来轻松创建所谓的observer_ptr. template<typename T> struct nop_deleter { void operator()(T*) const {} };

  • 用C#指示生成int数组?2019-10-08 03:05:46

    以下C程序按预期编译和运行: #include <stdio.h> int main(int argc, char* argv[]) { int* test = new int[10]; for (int i = 0; i < 10; i++) test[i] = i * 10; printf("%d \n", test[5]); // 50 printf("%d \n", 5[t

  • c – 使用std :: launder从指向非活动对象的指针获取指向活动对象成员的指针?2019-10-08 00:10:29

    这个问题跟随这个one 我们来考虑这个示例代码: struct sso { union{ struct { char* ptr; char size_r[8]; } large_str; char short_str[16]; }; bool is_short_str() const{ return *std::launder(short_str+15)=='\0'; //UB? }

  • c – 删除指针有时会导致堆损坏2019-10-07 10:07:20

    我有一个使用自定义线程池类运行的多线程应用程序.线程都执行相同的功能,具有不同的参数. 这些参数以下列方式提供给threadpool类: // jobParams is a struct of int, double, etc... jobParams* params = new jobParams; params.value1 = 2; params.value2 = 3; int jobId = 0;

  • c – 如何正确删除std :: list中的指针?2019-10-07 05:06:01

    我正在通过new创建一个对象,然后在设置对象后将指针添加到std :: list. 删除指针和从列表中删除数据而不会导致内存泄漏的正确方法是什么?解决方法:我宁愿使用std :: find_if,而不是手动循环来搜索元素 auto it = std::find_if(lst.begin(), lst.end(),

  • c – 在一组指针中查找指针的内容2019-10-07 03:05:13

    编辑:看错了一行,这是一套当然,谢谢你发现我的(懒惰)错误. 以下示例代码: set<Foo *> set_of_foos; set_of_foos.push_back(new Foo(new Bar("x"))); set_of_foos.push_back(new Foo(new Bar("y"))); [...] //the way a "foo" is found is not important for the exa

  • c – 当通过参考传递参数时,可以放置&符号“&”?2019-10-06 15:08:26

    在我看到的示例中,参数通过以下方式通过引用传递: void AddOne(int &y) 在我的代码中,我看到以下语法: void AddOne(int& y) 我想知道它是否相同或第二种情况与第一种情况有所不同.解决方法:两者都完全一样.没有任何区别. 重要的是&应该在类型和变量名之间.空间无所谓. 所以 voi

  • 使用C中的指针交换数组2019-10-06 12:05:23

    我有两个指向双打的指针数组,我需要交换.而不是仅仅复制数组中的数据,将指针交换到数组会更有效.我一直认为数组名称本质上只是指针,但以下代码收到编译器错误: double left[] = {1,2,3}; double right[] = {9,8,7}; double * swap = left; left = right; // Error "ISO C++ forbi

  • 以编程方式在Android屏幕上移动鼠标指针2019-10-06 03:25:46

    我正在开发一个Android应用程序,我想在Android平板电脑上移动“鼠标”指针/光标.我知道这是可能的,因为当我将鼠标(USB或BT)连接到Android平板电脑(Honeycomb)时,会出现光标,我只能使用鼠标与平板电脑进行交互.我想在平板电脑上用Java控制那个鼠标.       我已经有了第二个可

  • c – 为什么指针的const不被强制执行?2019-10-05 16:14:33

    请考虑以下代码段: class A { public: void nonConstFun() { } }; class B { private: A a_; A * pA_; public: void fun() const { pA_->nonConstFun(); //a_.nonConstFun(); // Gives const related error } }; int mai

  • c – 这个地址2019-10-05 09:14:23

    我试图找到这个指针的地址,但这段代码显示出一个奇怪的 错误: #include <iostream> using namespace std; class Base { public: void test() { void *address_of_this =&this; cout<<address_of_this<<endl; } }; int mai

  • c – 什么是指针调节?2019-10-05 08:15:10

    我正在阅读关于维基百科上的整数溢出,并且在看到的字段中遇到了Pointer Swizzling这个术语. 我用谷歌搜索指针调配,但无法理解它.任何人都可以解释什么是指针调配?解决方法:维基百科页面解释了这一点,但让我用另一种方式说. 假设您在内存中有二叉树数据结构,并希望将结构保存到磁盘.

  • c – 如何在托管代码环境之外安全编程?2019-10-05 07:15:41

    如果您是使用C或C编程的人,没有内存管理的托管语言优势,类型检查或缓冲区溢出保护,使用指针算法,您如何确保您的程序是安全的?您是否使用了大量的单元测试,或者您只是一个谨慎的编码器?你有其他方法吗?解决方法:上述所有的.我用: >非常谨慎 >尽可能使用智能指针>已经过测试的数据结构,

  • c如何获取指针数组的长度?2019-10-05 06:15:59

    参见英文答案 > How to find the ‘sizeof’ (a pointer pointing to an array)?                                    13个 我无法找到指针数组的长度.比方说我有: char array[40] = "hello"; // size 40 int length = sizeof array / sizeo

  • 在现代C post C 11中使用原始指针2019-10-05 00:16:02

    鉴于C 11标准现在得到大多数体面编译器的良好支持,2014年使用原始指针的主要原因是什么? 我确定了几个场景: >您正在扩展大量使用原始指针的遗留代码库,并且您希望保持样式的一致性. >您正在使用仅导出原始指针的库,但我猜您仍然可以使用强制转换.>您希望利用指针的功能来提供多个间

  • c – 什么是PVOID数据类型?2019-10-04 16:16:15

    有人可以解释PVOID是什么以及如何在以下函数中使用它: BOOL DoSomething(PVOID pMemPhy) 解决方法:void指针,与 void *pMemPhy 又名“指向某事物,但这取决于你解决问题”. BOOL DoSomething ( PVOID pMemPhy ) { strcpy((char *)pMemPhy, "I love buffer overflows!");

  • 从C中的现有数组创建子数组的最佳方法是什么?2019-10-04 13:15:24

    好吧,我试图从现有阵列中获取一个子数组,我只是不知道该怎么做.在我的例子中,我有一个非常大的数组,但我想从数组的最后5个元素创建一个数组. 我所谈论的一个例子是: int array1 = {1,2,3,...99,100}; int array2[5] = array1+95; 我知道这是不正确的,但我在纠正它时遇到了一些麻

  • c – const指针指向指针2019-10-04 04:14:30

    为什么我不能这样做: char* p = new char[10]; void SetString(char * const str) { p = str; } SetString("Hello"); 我有一个指向char的const指针,为什么我不能将const指针指向另一个指针? 这似乎是不合逻辑的,因为通过将其分配给另一个指针,您基本上不会违反char指针的常

  • C类对象指针和访问成员函数2019-10-04 01:15:15

    我对C有点新,并尝试用Qt处理事情并遇到了这个令人困惑的事情: 各种教程的概念陈述如下: Class *obj; * obj – 将显示存储在引用内存中的对象的值 obj – 将指向它的内存地址 所以,我会做类似的事情 *obj=new Class(); 但如果我想访问一个函数,我必须做obj-> function1();而不

  • c – 解除引用NULL指针和未初始化指针之间的区别2019-10-03 17:05:11

    在代码块(C) #include<bits/stdc++.h> using namespace std; int main(){ int *p; cout<<*p; } 产生垃圾价值,而 #include<bits/stdc++.h> using namespace std; int main(){ int *p=NULL; cout<<*p; } 导致运行时错误. 我预计两者的运行时错误(ideone会为两者

  • c – 使用malloc无效工作分配空间来列出指针2019-10-03 13:06:51

    class graph { int v; list<int> *adj; void dfsutil(int v,bool visited []); public: graph(int v) { this->v=v; //adj = new list<int>[v]; adj = (list<int> *)malloc(v*sizeof(list<int>)

  • c – 函数返回数组但主显示垃圾2019-10-03 11:07:03

    以下代码是打印垃圾值.我将一个数组传递给一个函数,该函数为每个元素添加5,但是当它返回该数组的指针时,主要显示垃圾. 我在main中尝试了索引和指针,但结果仍然相同.我怎样才能解决这个问题? # include <conio.h> # include <iostream> using namespace std; int * add5ToEveryEle

  • c – 堆摘要错误不匹配2019-10-03 11:06:20

    我知道我不需要担心仍然可以访问的字节,但这种情况是不同的. 我的文件: wscramble_fio.cpp // wscramble.cpp // Word Scramble guessing game // Illustrates string library functions, character arrays, // arrays of pointers, etc. #include <iostream> #include <cstdlib> #

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有