pointers相关内容

将 realloc() 返回的地址分配给同一个指针是一种好的编码习惯吗?

我在一些网站上看到了一些与 realloc() 相关的代码,如下所示. int *p = (int *)malloc(sizeof(int) * 10);p = (int *)realloc(p, 100); 但正如标准所说,如果 realloc 失败,原始块保持不变并返回 NULL. 所以如果 realloc 失败,从上面的例子中,我们将失去释放 p 的能力.谁能告诉我将 reallo ..
发布时间:2022-01-19 14:54:07 其他开发

为什么没有开关指针?

例如: #include 无效why_cant_we_switch_him(无效*ptr){开关(指针){案例空:printf("NULL!\n");休息;默认:printf("%p!\n", ptr);休息;}}诠释主要(无效){void *foo = "toast";为什么_cant_we_switch_him(foo);返回0;}gcc test.c -o 测试test. ..
发布时间:2022-01-19 10:33:46 其他开发

是否可以将 C 指针初始化为 NULL?

我一直在写类似的东西 char *x=NULL; 假设 字符 *x=2; 将创建一个指向地址 2 的 char 指针. 但是,在 GNU C 编程教程中 它说 int *my_int_ptr = 2; 将整数值 2 存储到分配时 my_int_ptr 中的任何随机地址. 这似乎意味着我自己的 char *x=NULL 正在分配 NULL 转换为 char 的任何值内存中的一些 ..
发布时间:2022-01-19 00:10:52 其他开发

对未初始化的指针指向任何地方这一事实感到困惑

#include 诠释主要(无效){诠释*ptr;printf("%p", ptr);//错误:使用了未初始化的局部变量 'ptr'//输出为“0"} 我正在阅读关于空指针的 C-FAQ.它说未初始化的指针可能指向任何地方.这是否意味着它指向内存中的随机位置?此外,如果这个陈述是真的,如果我尝试 printf("%p",ptr) 为什么会发生错误?由于未初始化的指针ptr指向某 ..
发布时间:2022-01-19 00:10:21 其他开发

char * 到字符串文字如何有效?

所以从我的理解指针变量指向一个地址.那么,以下代码在 C++ 中如何有效? char* b= "abcd";//有效的诠释 *c= 1;//无效的 解决方案 在 C 和非常旧的 C++ 版本中,字符串文字 "abcd" 的类型为 char[],一个字符数组.这样的数组自然会被 char* 指向,但不能被 int* 指向,因为那不是兼容的类型. 但是,C 和 C++ 是不同的,通常是不兼 ..
发布时间:2022-01-18 23:51:21 C/C++开发

为什么可以将字符串分配给 char* 指针,但不能分配给 char[] 数组?

有人能解释一下为什么这适用于指针吗: char * str1;str1 = "你好1";str1 = "新字符串";//但不是这个char str2 [] = "你好";str2 =“四";//或这个字符 str3 [];str3 = "你好";str3 = "你好"; 解决方案 为什么使用指针: 当你在 C 中说 char * str1 时,你是在内存中分配一个指针.当您编写 str1 ..
发布时间:2022-01-18 23:43:36 其他开发

在没有对象初始化的情况下调用 C++ 函数

为什么下面的代码会运行? #include A类{整数;上市:无效 foo(){ 数 = 5;std::coutfoo();返回0;} 输出是 num=5 我使用 gcc 编译它,我在第 10 行只收到以下编译器警告: (警告:“a"在此函数中未初始化) 但根据我的理解,这段代码不应该根本不运行吗?为什么在 num 不存在时将值 5 分配给 num 因为还没 ..
发布时间:2022-01-18 23:41:10 C/C++开发

任意解引用指针的输出

我按如下方式填充内存: char buf[8] = { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88}; 然后将无符号长指针依次放在前5个字节并输出结果: char *c_ptr;无符号长 *u_ptr;c_ptr = buf;对于 (int i=0;i 当我在我的 x64 平台上执行此代码时,我得到了我的预期: 4433221155443 ..
发布时间:2022-01-17 14:14:18 C/C++开发

将列表框数据保存为 XML?

我有 2 个列表框,第一个列表框存储每个项目 Object 属性的数据指针(由我编写的自定义类定义).每当我从这个列表框中选择一个项目时,我都会通过访问存储在第一个列表框中的一些数据来填充第二个列表框. 这很好,但现在我需要知道如何将列表框保存和恢复为 XML. 如果有人可以提供示例或帮助我编写代码来执行此操作,我将不胜感激. 以下是一些示例代码,展示了我如何创建和访问数据: ..
发布时间:2022-01-16 11:28:08 其他开发

函数 stoi 未声明

我正在尝试使用 stoi 将字符串转换为整数,但是它说它没有被声明.我有标准库和 包括在内,但它仍然说 [Error] 'stoi' is not declared in this scope 代码如下: #include #include #include #include 使用命名空间标准;主函数() ..
发布时间:2022-01-14 14:44:53 C/C++开发

Fortran 指针函数:为什么此代码的行为取决于函数调用的顺序?

上下文 下面发布的玩具 Fortran 代码调用了两个指针函数.也就是说,两个函数都返回一个指针.事实上,它们都是数组指针.它们都试图做同样的事情,即返回一个整数数组指针,该指针引用一个具有三个元素 1、2 和 3 的整数数组.第一个函数使用指针赋值运算符 (=>) 将函数指针指向保存数据的可分配数组.第二个函数通过指针直接分配一块动态内存,用于存储数据.调用程序只打印返回数组的元素. ..
发布时间:2022-01-14 10:18:42 其他开发

为什么这种将指针从 C++ 传递到 Fortran 的尝试不起作用?

我需要将一个动态数组从 c++ 传递到 Fortran.我做了很多研究来整理一个我认为应该有效的例子,但事实并非如此.该程序应在 c++ 程序中创建一个数组,将该数组的指针传递给 Fortran 例程,将 C 指针转换为 Fortran 指针,然后在 Fortran 端打印该数组. 我的 c++ 主程序: 使用命名空间标准;外部“C"{无效 cinterface(int*,int*);}主 ..
发布时间:2022-01-14 10:13:35 C/C++开发

数组和指针形状

谁能解释一下为什么下面的程序不起作用,以及如何使它起作用?在主程序中我分配了一个指针,在子程序 sub 中我查找数组的形状并得到错误的值. 程序测试实数,指针,维度(:,:,:) :: arr分配(arr(3,5,7))print *, "在测试中:",shape(arr)调用子(arr)print *, "返回测试:",shape(arr)结束程序测试子程序 sub(arr)实数,指针,维度 ..
发布时间:2022-01-14 10:11:47 其他开发

派生类型中的关联指针?gFortran 与英特尔

我想检查派生类型中的指针是否已经定义.我写了以下简单的代码来告诉你我的问题: 程序测试隐式无输入 y实数(8),指针 :: x(:)结束类型 y类型(y),指针::w(:)分配(w(2))分配(w(1)%x(2))写(*,*) 关联(w(1)%x), 关联(w(2)%x)结束程序测试 使用 gFortran 4.4.1 编译此代码并在 Ubuntu 上运行它会得到结果: T F 而在 Wi ..
发布时间:2022-01-14 10:05:25 其他开发

Fortran 函数:指针作为实际参数,目标作为形式

我正在尝试破译一个 fortran 代码.它将指向函数的指针作为实际参数传递,而形式参数则是目标.它在主程序中定义并分配了一个 globalDATA 类型的指针,然后调用一个传递该指针的函数: 模块数据GLOBAL输入 globalDATA类型 (gl_1) ,指针 :: gl1类型 (gd_2) ,指针 :: gd2类型 (gdt_ok) ,指针 :: gdtok......结束类型 glob ..
发布时间:2022-01-14 10:02:15 其他开发

=> 是什么意思?(等于大于)Fortran 中的平均值?

我正在查看一些旧的 Fortran 90 代码,发现了 => 符号: var =>物品 它似乎被用于某种任务. 在 Google 中搜索 “箭头符号 Fortran" 或 “等于大于符号 Fortran" 没有找到相关材料. 解决方案 令人惊讶的是,搜索 "equals arrow symbol Fortran" 会产生一些结果. "=>" 通常被称为 指针赋值运算符. ..
发布时间:2022-01-14 10:01:48 其他开发