jjzjj

c - malloc() 并分配 : C code in run well in OS X; not in Win 8. 1

我编写的代码在OSX中没有任何问题,但在VS2013社区上运行时出现以下错误。Unhandledexceptionat0x001A3D22inMyproject.exe:0xC0000005:Accessviolationwritinglocation0x00000000.这是有问题的代码。原来的代码多了一些行,但是下面的代码自己产生了同样的错误。#includeintmain(void){int**p;p=(int**)malloc(sizeof(int*)*5000);for(inti=0;i这是发生错误时的状态。i和p为红色。namevaluetypei4118intp0x007

c - 由于 C 中错误的 malloc 导致程序崩溃

我的程序在这一行第二次运行时崩溃了:char*temp_directive=(char*)malloc(7);出现此错误:Criticalerrordetectedc0000374WindowshastriggeredabreakpointinMaman14.exe.Thismaybeduetoacorruptionoftheheap,whichindicatesabuginMaman14.exeoranyoftheDLLsithasloaded.ThismayalsobeduetotheuserpressingF12whileMaman14.exehasfocus.我不明白为什么,它

c - Malloc 是否分配了比需要的更多的内存?

这是学校的C作业,但我遇到了一些奇怪的事情,我不知道它是否正常。我必须接受命令行参数,一个例子是-ia.b所以在我的程序中,我使用malloc动态分配内存char*fileName=NULL;fileName=malloc(strlen(argv[i])*sizeof(char));//errortestingetcstrcpy(fileName,argv[i]);工作正常,但我通过visualstudio调试器查看内存,这是在内存位置分配的内存位置,对我来说,它需要的空间更大:0x01608b98"ÍÍÍÍÍýýýýB`\x1˜?`\x1\xf1¼O{º"如果我像这样转换malloc

C malloc + free 不断增加内存占用

我有一个处理大量数据(100+KB)的C应用程序。我正在使用malloc()来分配所需的内存。(char*)malloc(argLen+18+2)执行后,我使用free释放分配的内存。据我所知,由于某些原因,释放的内存没有返回给操作系统。我的问题是,当我再次运行该程序时,它并没有重新使用分配的内存,而是不断增加我的应用程序的内存使用量。编辑:对于造成的困惑,我深表歉意。该进程是一个WebSocket服务。除非有意停止,否则它不会终止。这是否意味着该进程将继续增加其内存使用量并且不会释放分配的内存,除非我手动重新启动它? 最佳答案 I

c - Malloc 在一些调用后不工作(C,在 Windows 10 上用 gcc 为 MinGW-W64 编译)

我需要测试我的项目在Windows上的性能。我有一个数组数组rede_conexoes,并在一个循环中分配每个位置,但经过一些迭代后,malloc函数不起作用,并且在我可以之前突然停止我的进程甚至测试返回值也没有显示错误信息。该代码在Windows10的WSL(适用于Linux的Windows子系统)上运行良好。为了在Windows上本地测试代码,我为gcc编译器安装了Mingw-w64(找不到更好的解决方案,因为支持需要OpenMP)。下面是带有malloc函数的片段:bool**rede_conexoes=(bool**)malloc(num_PL*sizeof(bool*));.

c++ - 从 C++ 应用程序查询堆

我想对使用C++运行时库的C++native应用程序中的内存泄漏进行故障排除。我可以很容易地知道当前分配的block数(以及可选的总大小)吗? 最佳答案 你可以试试HeapWalk在HeapAPI,不需要第3方库。 关于c++-从C++应用程序查询堆,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/56737608/

python - 如何将通过 ctype malloc 分配的二进制缓冲区保存到 Python 中的文件中?

我有以下代码importctypespBuf=ctypes.cdll.msvcrt.malloc(nBufSize)#wrotesomethingintothebuffer如何使用Python2.5将缓冲区的内容保存到文件中?您可能已经知道,这是行不通的,给出TypeError:argument1mustbestringorread-onlybuffer,notint:f=open("out.data","wb"f.write(pBuf) 最佳答案 也许用ctypes.create_string_buffer()分配缓冲区会更好而不

c++ - 是否可以与另一个进程共享现有的 RAM block ?

背景我有一个现有的32位应用程序,它分配了相当大的RAM(>128MB)block(通过malloc/new)并填充了一些图像数据(多帧值)。应用程序的插件可以通过SDK-API调用访问指向这blockRAM开头的只读指针(constchar*)。其他API调用可用于检索元数据,例如宽度/高度/位深度等。在SDK-API调用之外,我无法/几乎无法控制此应用程序。我还有另一个64位应用程序(在我的控制下),它需要上述数据作为输入,并且由于保证64位进程的上采样/3D体积重建需要更多的RAM。问题我希望与64位进程共享映射到32位进程中此现有指针的物理内存(最初不是通过CreateFile

C: 函数没有更新全局数组(使用 strcpy/malloc)

尝试从Windows中的目录获取文件名。通过名为list_files的函数执行此操作。该函数由于某种原因(或看起来像它)没有做任何事情,因为每当我打印数组时,它都是空的。我之前测试过这段代码,它运行良好。我一直在编码(这本来是一个更长的代码)我注意到每当我以后不得不使用数组时它返回0(什么都没有)voidlist_files();char*filesList[0][254];inti=0,n=0,l=254;chardirectory[]={"C:/Users/test/Downloads/test/"};intmain(){list_files();}voidlist_files()

c - 适用于 Windows 的 MALLOC_TRACE

在我们公司,我们有一个类似于mtrace的内部框架glibc中用于检测内存泄漏的(MALLOC_TRACE)功能。这个框架是为在Windows上运行而编写的,但它在GNU/Linux上运行得不是很好。那么,有人知道可以在Windows、GNU/Linux甚至MacOSX上运行的与mtrace(MALLOC_TRACE)等效的可移植版本吗? 最佳答案 你试过dmalloc吗?http://dmalloc.com/也许我认为在linux上valgrind要好得多 关于c-适用于Windows