pointers相关内容

Fortran 派生类型包含可从 C 访问的指针

我有一个 Fortran 代码,其中包含许多包含指针的派生类型.我正在编写需要访问这些变量的 C++ 代码.如果没有指针,我无法重写这些派生类型,因为它们在 Fortran 代码中的数百个不同地方使用. 下面是示例代码: 简单的模块使用 iso_c_binding类型,绑定(C)::简单整数 :: A整数、指针 :: B、C(:)端型简单结束模块简单 我需要从 C 中访问 SIMPLEF ..
发布时间:2022-01-14 09:40:40 其他开发

为什么 unique_ptr<T>(T*) 是显式的?

以下函数无法编译: std::unique_ptr;富(){int* 答案 = 新 int(42);返回答案;}std::unique_ptr;酒吧(){返回新的int(42);} 我觉得这有点不方便.使 std::unique_ptr(T*) 显式的基本原理是什么? 解决方案 您不希望托管指针隐式地获取原始指针的所有权,因为这可能会导致未定义的行为.考虑一个函数 void f( ..
发布时间:2022-01-13 08:25:00 C/C++开发

C++禁止指针到指针转换

在 C++ 中,Type ** 到 Type const ** 的转换是被禁止的.此外,不允许将 derived ** 转换为 Base **. 为什么这些转换是 wtong ?还有其他不能发生指针转换的例子吗? 有没有办法解决:如何将指向 Type 类型的非常量对象的指针转换为指向 Type 类型的 const 对象的指针code>,因为 Type ** --> Type const ..
发布时间:2022-01-13 08:17:14 C/C++开发

常量双指针参数的非常量指针参数

C++中的const修饰符在star之前意味着使用这个指针不能改变指向的值,而指针本身可以指向别的东西.在下面 void justloadme(const int **ptr){*ptr = 新的 int[5];}主函数(){int *ptr = NULL;justloadme(&ptr);} justloadme 函数不应该被允许编辑传递的参数指向的整数值(如果有的话),而它可以编辑 int ..
发布时间:2022-01-13 00:09:21 C/C++开发

c语言中%d和%p printf格式字符串指令的区别?

我想详细解释一下%d和%p类型用于打印指针的区别. 还有为什么 %p 返回十六进制?%d 和 %p 返回不同值的情况是什么?数据类型仅代表用户想要输出的方式还是与内存位置有关? 解决方案 要使程序定义明确,格式说明符必须与参数的类型匹配.因此,您可以使用 %p 而不是 %d 来打印指针.(后者可能恰好适用于某些架构,但在技术上是未定义行为.) 您不能自由交换 %d 和 %p 的 ..
发布时间:2022-01-13 00:00:12 其他开发

传递给函数的 Char 指针与 Int 指针

我以为我理解了指针,但我认为它们被区别对待的方式存在细微差别,我并没有完全理解.当我将整数指针或整数地址传递给 showInt 时,它将打印出与函数外部相同的内存地址.然而.当我将以下指针传递给 showChar 时; char* value = "One";显示字符(值); 函数内部的第一个元素的地址与函数外部的地址不同.我知道这是与按值传递一致的行为,并且指针的副本是在函数内制作的,但是我 ..
发布时间:2022-01-12 21:04:18 C/C++开发

如何知道传递给函数的 char 数组的大小(以字节为单位)?

我正在测试 sizeof 运算符.在我的代码中的两种情况下,我得到了 指针的大小(我认为).在其他情况下,我得到数组占用多少字节.当我将数组传递给函数时,如何获取以字节为单位的数组大小?sizeof 运算符还不够吗?我做错了吗? #include /*测试算子sizeof*/无效测试(字符数组T []);无效 test2 (char *arrayU);int main(int ..
发布时间:2022-01-12 21:03:02 其他开发

将 char* 分配给字符串变量后删除

我已经执行了下面的代码,它运行良好.由于它是关于指针的,我只是想确定一下.虽然我确信将 char* 分配给 string 会产生副本,即使我删除 char*,string var 也会保留该值. #include #include #include #include 主函数(){std::string testStr = "怎 ..
发布时间:2022-01-12 21:01:06 C/C++开发

C 字符指针

假设我们有一个指针数组: char *ptr[30]; 现在这工作正常,并且似乎没有做任何意想不到的事情!我可以轻松输入姓名. scanf("%s", ptr[1]);scanf("%s", ptr[2]);scanf("%s", ptr[3]);printf("%s\n", ptr[1]);printf("%s\n", ptr[2]);printf("%s\n", ptr[3]); ..
发布时间:2022-01-12 21:00:42 其他开发

C++ 异常返回类型为什么是 char*

有人能解释为什么自写的 C++ 异常,继承自异常返回一个 char * 而不是一个字符串? class myexception: 公共异常{虚拟 const char* what() const throw(){返回“我的异常发生了";}} 我的前夫; 来源:http://www.cplusplus.com/doc/tutorial/exceptions/ 解决方案 由于 std::e ..
发布时间:2022-01-12 21:00:34 C/C++开发

将字符串从指针复制到字符串

我正在开发一些代码,它从 sd 卡(使用 FatFs)读取文件名并将它们显示到屏幕上.这是我工作的一个片段,这会按预期打印出卡上的文件 - FRESULT 结果;字符 *path = '/';//查看sd卡根目录结果 = f_opendir(&目录,路径);//打开目录如果(结果==FR_OK){为了(;;){结果 = f_readdir(&目录, &fileInfo);//读取目录如果(结果= ..
发布时间:2022-01-12 20:56:17 其他开发

列表初始化的 char 数组是否仍以 null 结尾?

在阅读 Lippman C++ Primer(第 5 版,C++11)时,我发现了以下代码: char ca[] = {'C', '+', '+'};//非空终止cout 在非空终止的 ca 上调用库 strlen 函数会导致未定义的行为.Lippman 等人说,“这个调用最可能的效果是 strlen 将继续查看 ca 后面的内存,直到遇到空字符." 稍后的练习询问以下代码的作用: ..
发布时间:2022-01-12 20:54:16 C/C++开发

如何将 char* 转换为 D 中的字符串?

我有一个标准的 char 指针,我试图将其转换为字符串. //字符串转char*char *x = cast(char*)("Hello World\0");//char* 转成字符串?字符串 x = 演员(字符串)x;字符串 x = cast(不可变(char)[])x; 错误! 任何想法如何将 char* 转换为 D 中的字符串? 解决方案 使用std.conv.to将cha ..
发布时间:2022-01-12 20:53:31 其他开发

如何将 3D 字符数组传递给函数

我有一个 chars table[][][] 的 3D 数组,我想将它传递给一个 void 函数,以便它可以对其进行更改.我怎样才能做到这一点? void make(char minor[][][]);......字符更大[20][30][50];制作(更大); 我想这行不通. 编辑:与此相关的另一个问题:假设我想创建一个复制函数来将字符串复制到数组中 - 我应该如何在函数中调用 str ..
发布时间:2022-01-12 20:51:32 其他开发

char* 和 char arr[] 区别 - C++/C

刚开始使用 C++,我想知道是否有人可以解释一下. 相信你可以通过以下方式初始化一个char数组 char arr[] = "你好" 这将创建一个具有值 'H'、'e'、'l'、'l'、'o'、'\0' 的 Char 数组. 但如果我确实创建了这个: char* cp = "你好"; 这会创建一个数组以及指向该数组的指针吗? 例如:cp会指向内存中的第一个元素('H' ..
发布时间:2022-01-12 20:51:24 C/C++开发

C sizeof char 指针

为什么这个 char 变量的大小等于 1? int main(){char s1[] = "你好";fprintf(stderr, "(*s1) : %i\n", sizeof(*s1) )//打印出 1} 解决方案 NOTA: 原来的问题一开始有点变化是:为什么这个char指针的大小是1p> sizeof(*s1) 和 一样 sizeof(s1[0]) 是 char 对象的大小 ..
发布时间:2022-01-12 20:48:30 其他开发

char 和 char*(指针)

我想了解指针是如何工作的,所以我创建了这个小程序.首先,我创建了一个指向 char 的 p 指针. 第一个问题到此为止.如果我创建一个指针,它的值是一个内存地址(如果我将它指向一个非指针对象),但这次在我的示例中是“哈哈".为什么它在 char* 中以这种方式工作?以及如何使用 cin >> p 为其增加价值? 我的第二个问题是,我创建了一个 q char,它在我创建它时具有 *p 指 ..
发布时间:2022-01-12 20:46:31 C/C++开发

如何在ctypes中传回指针?

对ctypes了解不多,最近才开始接触. 我在类 C 的 dll 中有一个简单的函数,它返回指向动态生成的字符串的指针. 它工作正常,但是因为我为字符串手动分配了内存,所以我应该在使用后释放它. 我有这样的事情: extern "C" char* DLL_EXPORT func(const char* str1, const char* str2){返回 getSomeString ..
发布时间:2022-01-12 20:42:38 Python

C#中字符串中的char *指针

是否可以在 C# 中为 string 变量获取 char*? 我需要将路径字符串转换为 char* 以使用一些本机 win32 函数... 解决方案 您可以将 StringBuilder 作为 char* 传递. 查看 http://pinvoke.net 看看函数的签名是否已经存在. ..
发布时间:2022-01-12 20:42:32 C#/.NET