memory 相关问题

使用此标记进行内存管理或编程问题。有关内存硬件问题或常规软件错误的问题,请访问https://superuser.com或https://serverfault.com(如果这与企业级硬件或软件有关)。

页表条目中的 x86 脏位

Intel架构手册说,当第一次对内存页面进行写访问时,CPU会设置页表条目的脏位。我对这个问题有疑问。 '肮脏的一点......

回答 1 投票 0

谁以及如何生成虚拟/逻辑地址?如果是编译器、链接器、加载器,会造成混乱

我知道当我编译一个程序然后用 objdump 检查时,我有地址。这些是相对地址。 但如果它是一个 C 程序,并且我 printf 带有 %p 一个指针,那就是虚拟/逻辑

回答 1 投票 0

为什么程序关闭后页表还保留在内存中?

我使用RamMap工具来监控Windows 10桌面上的内存使用情况。我发现即使关闭程序,进程的页表仍然存在。如快照所示,程序

回答 1 投票 0

从内存节点删除变量.JS

我知道,例如,c++有类似delete变量的东西,它会从内存中删除。 JS中有这样的东西吗? 例如,我有 var canSendRequest = true;然后...

回答 3 投票 0

一个关于C++程序内存泄漏的问题

我收到了这段代码作为作业,其中一个问题是:程序中会不会出现内存泄漏,因为MyList的析构函数释放了节点但没有释放数据。 是否

回答 1 投票 0

为什么我总是在内存位置 0x000000B70C8FF360 处收到 Microsoft C++ 异常:std::out_of_range。什么时候使用矢量?

Visual studio 显示发现 0 个问题,但当程序启动时,会弹出一个选项卡,其中包含向量库和第 2151 行上的点,并显示“Project2.exe 中 0x00007FF90121CF19 处未处理的异常:Micros...

回答 1 投票 0

Selenium、Webdriver 正在超载内存

我需要打开选项卡并收集数据并关闭选项卡。大约 600 个标签。 问题在于 Chrome 驱动程序会因每个新选项卡而导致内存过载。即使您使用 driver.close() 关闭,内存使用...

回答 1 投票 0

Valgrind:仅对于较大的输入值,地址 0x0 不会被堆栈、分配或(最近)释放

我正在尝试实现 Dijikstra,这是我拥有的图形生成代码 #包括 #包括 #包括 #包括 我正在尝试实现 Dijikstra,这是我拥有的图形生成代码 #include <stdlib.h> #include <stdio.h> #include <limits.h> #include <math.h> #define MAX 300 int main (int argc, char *argv[]){ int v = atoi(argv[1]); int SIZE = v*v; int* adjMatrix = malloc(sizeof(int)* SIZE); graphGeneration(adjMatrix, v); free(adjMatrix); return 0; } void graphGeneration(int* adj, int numV){ int i, j, r; for(i = 0; i< numV; i++){ for(j=0; j < numV; j++){ if(i == j){ adj[i * numV + j] = 0; } else{ r = rand() % MAX; adj[i * numV + j] = r; adj[j * numV + i] = r; } } } } 当我尝试输入 1000 的 v 值时,它似乎工作正常,但是当我尝试输入 v = 10,000+ 的值时,我遇到了段错误(特别是我注意到的数字是 50,000)。运行 valgrind 会导致我在该方法的标题中出现错误。 为了方便起见,重新发布在这里: Invalid write of size 4 at 0x400800: graphGeneration by 0x4006E3: main Address 0x0 is not stack'd, malloc'd or (recently) free'd Access not within mapped region at address 0x0 有人对如何调试这个有任何想法或者这里是否有任何明显的错误? 我也在 valgrind 中注意到了这一点 Warning: silly arg (-7179869184) to malloc() 我不确定这是否相关,但这似乎也是一件奇怪的事情。 看看一些 malloc() 手册:它的参数是 size_t 类型是有原因的。 int 不能保证容纳任何可能的对象大小,size_t 可以。顺便说一句,它是无符号的——负大小没有多大意义。 所以就写吧 size_t SIZE = ((size_t)v) * v; 因为你的 v 是一个 int 你必须通过强制转换参数之一来强制这个乘法作为 size_t 完成。 稍微好一点的方法是将 v 制作为 unsigned long 并使用 strtoul() 代替 atoi()。 然后,在使用之前检查您的malloc()的结果。即使使用正确的大小参数,它仍然可能返回 NULL。如果是这样,这仅仅意味着您当时没有足够的可用内存。 毕竟,使用 v=10000 并假设 int 占用四个字节(这很常见),您已经尝试一次分配 400 MB。 他是中本聪..但是这是构建项目的投资组合 不要试图理解这一点..这会让你很快发疯..

回答 2 投票 0

需要更改我的代码以不在 C 中包含 malloc

我有一些代码,但我没有意识到我无法使用 malloc - 我已经编写了另外 250 行代码,并且想知道如何更改此代码以仍然使用相同的所有内容,但不使用 malloc。 ...

回答 1 投票 0

如何为 Slurm 作业指定每个核心的最大内存

我想为 slurm 中的批处理作业指定每个核心的最大内存量 我可以看到两个批处理内存选项: --mem=MB 作业所需的每个节点的最大实际内存量。 --mem-...

回答 1 投票 0

处理线程崩溃

我在网上搜索了以下问题:如果进程的派生线程之一在cpp中崩溃,进程能否继续执行? 所有答案似乎都表明它不可能/可能导致 undef...

回答 1 投票 0

自定义分配器和 std::map

这是我可以用 gcc 编译的代码: #包括 #包括 模板 类map_alloc { 民众: typedef std::size_t 大小类型; 类型定义...

回答 1 投票 0

为什么我的自定义元素没有被垃圾收集?

考虑一个网页,其中包含一个触发模式打开的按钮: 打开模态 const 触发器 = document.querySelector(`屁股...

回答 2 投票 0

C 在一次 free() 调用中释放所有选定的内存

我正在使用一个 C 函数 freeMemory(),它获取一系列指针作为输入,并释放这些指针占用的内存,如下所示: void freeMemory(char **parallel_commands, struct command *coma...

回答 1 投票 0

Java - 在内存中存储排序列表值

快速说明: 我有一个哈希映射,根据列表的排序类型以不同的顺序存储列表。我希望将其存储在内存中,这样我就不必在运行时多次对每个列表进行排序

回答 1 投票 0

将队列设计为共享内存

我正在尝试设计/实现一个(循环)队列(用C语言)作为共享内存,以便它可以在多个线程/进程之间共享。 队列结构如下: typedef 结构 _q ...

回答 2 投票 0

限制 Mac-OS X 10.8 中进程的内存分配

我想控制Mac-OS X 10.8中进程可以使用的最大内存。我觉得设置 ulimit -v 应该可以实现目标,但似乎并非如此。我尝试遵循简单的通讯...

回答 2 投票 0

具有静态多维数组的C++结构体的内存布局

我有一个包含整数和静态数组的 C++ 结构,如下所示: 结构 sMyStruct { 无符号整型 uiVal; int iVal1; int iVal2 = 0; 浮动 afVals[ NUM_VALUES ]; 未签名的 char aui...

回答 1 投票 0

verilog 中的 32 位指令存储器

在指令存储器中,我们需要内部存储器来存储指令。我们需要定义一个 2D 数组存储 64 条指令,每条指令 4 字节(32 位)。因此,将指令存储器定义为...

回答 1 投票 0

子进程使用的 /usr/bin/time 命令(可能)给出错误的数据

我正在做一个网络项目,你可以在其中解决编程问题。我的问题是关于最大驻留集大小,对于(一个示例)读取数字并输出来说,这似乎非常高......

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.