pointers相关内容

内存是如何分配给不同数据类型的变量的?

我编写了以下代码. #includeint main(){整数 x = 1 ;int *j = &x ;整数 y = 2 ;int *t = &y ;printf("%p\n" , (void *)j);printf("%p" , (void *)t);} 输出为 0028FF14 0028FF10. 我想说的一点是地址之间的差异是“4". 而在这种情况下 #includeint ..
发布时间:2021-11-27 08:13:13 其他开发

函数内二维数组的动态分配(使用指针返回分配对象的地址)

我想/ike 知道,如何使用函数参数将指针传递给动态分配的数组.这个函数应该分配数组 10x10(为了简单起见,跳过了检查).这可能吗?我究竟做错了什么?提前致谢. int array_allocate2DArray ( int **array, unsigned int size_x, unsigned int size_y){数组 = malloc (size_x * sizeof(int ..
发布时间:2021-11-27 08:13:02 其他开发

如何在 C++ 中分配一个二维指针数组

我试图让一个指针指向一个二维指针数组.什么是语法,我将如何访问元素? 解决方案 根据法律条文,以下是操作方法: //创建二维指针数组:int*** array2d = new (int**)[rows];for (int i = 0; i ..
发布时间:2021-11-27 08:09:38 C/C++开发

如何在C中对齐指针

有没有办法在 C 中对齐指针?假设我正在将数据写入数组堆栈(因此指针向下)并且我希望我写入的下一个数据是 4 对齐的,因此数据被写入一个 4 的倍数的内存位置,我该怎么做那个? 我有 uint8_t ary[1024];亚里=亚里+1024;ary -=/* ... */ 现在假设 ary 指向位置 0x05.我希望它指向 0x04.现在我可以做 ary -= (ary % 4); ..
发布时间:2021-11-27 08:07:21 其他开发

如何在 Fortran 中为函数名称设置别名

不知道标题写得好不好.欢迎提出建议. 这就是我想要做的.检查条件,然后决定在循环中使用哪个函数.例如: if (a 然后我可以在编写循环时使用 loop_func 作为指针.这两个函数采用完全相同的输入,并且是基于 a 的值解决问题的不同方法.这将允许我只有一个代码块,而不是两个几乎相同的块.这也适用于子程序. 有什么想法可以实现吗? 谢谢. 解决方案 是的,For ..
发布时间:2021-11-26 23:57:28 其他开发

c# 更改方法的指针 .NET 3.5

我正在尝试在运行时替换插件加载器中的方法(例如 Bukkit for Minecraft).在此实例中,我无法直接修改程序集文件.整个目的是能够知道何时调用方法.并在必要时取消它们.加载插件后,我运行以下代码: public static void PluginLoaded(){代替();}公共静态无效替换(){MethodInfo oldMethod, newMethod;oldMethod ..
发布时间:2021-11-26 20:23:06 C#/.NET

c - 读取数组时的访问冲突

我正在尝试读取数据数组并收到访问冲突.我可以使用分配数组的函数从数组中读取数据: AllCurrentData[newLineCount].data[tabCount] = malloc(length + 1);strcpy( AllCurrentData[newLineCount].data[tabCount], buffer );printf("%s", AllCurrentData[new ..
发布时间:2021-11-26 20:18:36 其他开发

在二叉搜索树中插入访问冲突错误

我正在尝试在二叉搜索树中插入节点,我在 searchNode() 函数的 if(ptr->data== item) 行遇到访问冲突错误.我怎样才能删除它.我是调试新手. 我首先尝试插入几个节点,然后使用显示功能显示它们.在插入过程中,程序会搜索要插入的节点的适当位置,然后将其插入.如果节点已经存在,程序简单地返回. #include#include#include结构节点{整数数据;结构节 ..
发布时间:2021-11-26 20:13:09 其他开发

为什么 *(int*)0=0 不会导致访问冲突?

出于教育目的,我正在编写一组在 C# 中导致运行时异常的方法,以了解所有异常是什么以及导致它们的原因.现在,我正在修补导致 AccessViolationException 的程序. (对我而言)最明显的方法是写入受保护的内存位置,如下所示: System.Runtime.InteropServices.Marshal.WriteInt32(IntPtr.Zero, 0); 正如我所希望 ..
发布时间:2021-11-26 20:08:34 C#/.NET

负数组索引

我有一个定义如下的指针: A ***b; 按以下方式访问它有什么作用: A** c = b[-1] 是否因为我们对数组使用了负索引而导致访问冲突?还是类似于*--b的合法操作? EDIT 请注意,负数组索引在 C 和 C++ 中具有不同的支持.因此,这不是骗人的. 解决方案 X[Y] is identical to *(X + Y)> 只要 X 和 Y 之一是指针类型,另一个 ..
发布时间:2021-11-26 20:07:42 C/C++开发

更改另一个应用程序的地址指针

我需要有人来编辑标题,我找不到更好的标题. 假设有一个名为 source.exe 的简单程序: #include int main(){int a = 5;printf("%p", &a);返回0;} 我想写另一个应用程序,change.exe,改变上面的a. 我尝试过这样的事情: int main(){int * p = (int*) xxx;//xxx 是上面打印的内容*p ..
发布时间:2021-11-26 20:04:58 其他开发

为什么这段代码修改字符串不起作用?

使用 c 风格的字符串,如何将字符分配给字符指针指向的内存地址?例如,在下面的示例中,我想将 num 更改为“123456",因此我尝试将 p 设置为“0"所在的数字,并尝试用“4"覆盖它.谢谢. #include #include int main(){char* num = (char*)malloc(100);字符* p = num;num = "123056";p = p+3;//设置指 ..
发布时间:2021-11-26 20:04:07 其他开发

ptr_map 和指针

我使用 boost 的 ptr_map 来存储从一些基本抽象类型派生的对象. class Entity { virtual void foo() = 0;};类Entity1:公共实体{};类Entity2:公共实体{};boost::ptr_map一些地图;//我们可以存储抽象类型的指针 插入效果很好: someMap.insert("someKey", new Entity1());so ..
发布时间:2021-11-26 16:22:34 其他开发

如何在 64 位应用程序中使用 32 位指针?

我们学校的项目只允许我们将c程序编译成64位应用程序,他们测试我们的程序的速度和内存使用情况.但是,如果我能够使用 32 位指针,那么我的程序将比 64 位消耗更少的内存,也可能它运行得更快(比 malloc 更快?) 我想知道是否可以在 64 位应用程序中使用 32 位指针? 感谢您的帮助 解决方案 你可以“自己动手".以下内容可能会减少内存使用量 - 略微减少 - 但它可能 ..
发布时间:2021-11-26 14:47:48 其他开发

操作系统的位数是否重要,还是只是我需要担心的应用程序?

一些假设:(如有错误请指正) 忽略 16 位的东西,VBA 可以在 32 位或 64 位的 Office 主机上运行.64 位 Office 只能在 64 位操作系统上运行,而您可以在 32 或 64 位版本的 Windows/macOS/其他操作系统上运行 32 位 Office. 从 VBA7 开始,我们有 LongPtr 类型,它在 32 位 Office 上变成了 Long ( ..
发布时间:2021-11-26 14:43:50 其他开发

指针大小:相关因素

我发现在理解 C 中指针变量的大小所依赖的因素方面存在困难.我查阅了一些参考资料,直到现在我得到的唯一信息是pointer 大小取决于处理器架构.我想知道以下详细信息 请详细说明架构如何影响指针大小. 一般来说,如果指针是 x 位,那么 0 到 2^(X)-1 个地址位置应该在那里.我正在迷失方向将地址位置的数量与程序可用的实际内存量相关联. 解决方案 指针是保存另一个内存位置地址 ..
发布时间:2021-11-26 14:41:53 其他开发

使用 intptr_t 而不是 void*?

使用 intptr_t 作为通用存储(保存指针和整数值)而不是 void* 是个好主意吗?(如下所示:http://www.crystalspace3d.org/docs/online/manual/Api1_005f0-64_002dBit-Portability-Changes.html) 对于我已经阅读的内容: int -> void* -> int 往返不保证保持原始值;我猜 ..
发布时间:2021-11-26 14:36:12 其他开发

c中的双指针和二维数组

我正在尝试使用双指针访问二维数组 int x[2][2] = {{10, 20},{30, 40}};国际*xp;国际**xpp;printf ("%d %d\n%d %d\n", x[0][0], x[0][1], x[1][0], x[1][1]);printf ("\n");xp = *x;printf ("%d %d\n%d %d\n", *xp, *(xp + 1), *(xp + 2 ..
发布时间:2021-11-26 13:50:37 其他开发

如何在 c 中创建一个二维数组并使用指针和函数显示它?

我正在尝试编写 2 个函数,一个用于读取矩阵(二维数组),另一个用于打印出来.到目前为止,我有: /* 读取矩阵:分配空间,读取元素,返回指针.这行数和列数由两个参数给出.*/double **read_matrix(int rows, int cols){double **mat = (double **) malloc(sizeof(double *)*rows);国际我= 0;for(i= ..
发布时间:2021-11-26 13:42:32 其他开发