首页 文章
  • 5 votes
     answers
     views

    指向函数中的字符串

    似乎我坚持一些基础知识 . 有人可以解释我为什么下一个代码: #include <stdlib.h> void Test1(char *t) { t = (char *)malloc(11); strcpy(t, "1234567890"); } void Test2(char **t) { *t = (char *)malloc(11)...
  • 26 votes
     answers
     views

    为什么malloc比英特尔的icc新7倍?

    我为malloc与new进行了基准测试,以分配浮点数组 . 我的理解是malloc执行的操作是new执行的操作的一个子集 - malloc只是分配但是新的分配和构造,尽管我不确定这对于原语是否有意义 . 使用gcc对结果进行基准测试可以得出预期的行为 . malloc()更快 . 甚至有些问题与此问题相反 . 使用icc malloc可能比新的慢7倍 . 怎么可能?! Everything t...
  • 9 votes
     answers
     views

    删除void指针是否保证删除正确的大小? [重复]

    可能重复:删除空指针是否安全? 假设我有一个名为 MyClass 的类的 new 分配,分配就像: MyClass *myClassPtr = new MyClass(); 我将参考文献存储在 void* 列表中 myListOfPointers.add(static_cast<void*>(myClassPtr)); // this has to be void* 后来我释放...
  • 472 votes
     answers
     views

    如何在Python中确定对象的大小?

    在C中,我们可以找到 int , char 等的大小 . 我想知道如何在Python中获取对象的大小,如字符串,整数等 . 相关问题:How many bytes per element are there in a Python list (tuple)? 我使用的XML文件包含指定值大小的大小字段 . 我必须解析这个XML并进行编码 . 当我想更改特定字段的值时,我将检查该值的大小字段 . 在...
  • -2 votes
     answers
     views

    没有用c语言分配访问内存空间有什么问题[重复]

    这个问题在这里已有答案: What's the point of using malloc when you can use pointer? [duplicate] 3个答案 #include<stio.h> main() { int *p,i; p = (int*)malloc(sizeof(int)); printf("Enter:"); ...
  • 2 votes
     answers
     views

    释放堆上的内存 . 我应该怎么做?

    我正在为Windows Mobile应用程序编写CESetup.dll . 它必须是不受管理的,我几乎没有经验 . 所以我不确定是否应该释放我分配的内存以及我是如何做的 . 这是我写的函数: Uninstall_Init( HWND hwndParent, LPCTSTR pszInstallDir ) { LPTSTR folderPath = ne...
  • 261 votes
     answers
     views

    new / delete和malloc / free有什么区别?

    new / delete 和 malloc / free 有什么区别? 相关(重复?):In what cases do I use malloc vs new?
  • 1 votes
     answers
     views

    无法使用free()释放内存

    我无法释放我使用malloc分配的内存 . 程序运行正常,直到它应该使用free释放内存的部分 . 程序冻结了 . 所以我想知道问题是什么,因为我只是在学习C.语法上代码似乎是正确的,所以我需要删除该位置的所有东西,然后从该位置或其他地方释放内存? 这是代码 . // Program to accept and print out five strings #include <stdio.h...
  • 0 votes
     answers
     views

    如何排出java线程堆栈内存区域?

    在C中,我可以通过以下小程序消耗堆栈内存区域(我的Mac中的堆栈大小限制为8MB) int main(int argc, const char **argv) { int a[1024*1024*2]; long size = sizeof(a); return 0; } 由于数组java也是一个对象,因此它的元素存储在堆中 . 根据Oracle's doc,Mac中的默认线程堆栈大...
  • 0 votes
     answers
     views

    释放分配给存储在向量内的堆的内存

    我已经通过分配它创建了一个向量's memory to the heap. I then create 10 string objects also allocated to heap memory and store them inside the vector. I' ve试图释放与每个新字符串对象相关联的内存,使用 delete 运算符,但是我使用C 11来使用'm not how to d...
  • 0 votes
     answers
     views

    C中的Linked List析构函数:我应该删除吗?

    我已经开始在C中实现一些数据结构,从Linked Lists开始 . 来自Java背景,我仍然围绕着指针和对象的生命周期 . LinkedList: struct Node { int data; Node *next; }; class LinkedList { private: Node *head; Node *tail; int length; ...
  • 6 votes
     answers
     views

    我怎么知道我是否需要删除C中的某些内容?

    想象一下以下课程: class MyString { public: const char* str; std::size_t str_len; MyString(const char* str, std::size_t str_len) : str { str } , str_len { str_len } {} } 我对为 M...
  • 35 votes
     answers
     views

    循环引用导致内存泄漏?

    我试图在Windows窗体应用程序中运行内存泄漏 . 我现在正在查看包含多个嵌入表单的表单 . 让我担心的是,子构造在构造函数中引用父窗体,并将其保存在私有成员字段中 . 所以在我看来,垃圾收集时间到了: Parent通过控件集合引用子表单(子表单嵌入在那里) . 子表单不是GC'd . 子表单通过私有成员字段引用父表单 . 父表单不是GC'd . 这是否准确了解垃圾收集器如何评估这种情况?有什么...
  • 2 votes
     answers
     views

    我是否需要自己发布添加到NSDictionary的NSNumbers?

    我正在创建一个NSDictionary,它将对象映射到整数,并且因为NSDictionaries不处理除了对象之外的任何东西,我必须用[NSNumber numberWithInt:30]包装NSNumber对象中的每个整数或者你有什么 . 我不清楚的是我是否需要释放我正在创建的所有NSNumber对象 . 我实际上并没有为它们分配空间,因此它们必须位于自动释放池中,但是我可以确定NSDictio...
  • 0 votes
     answers
     views

    当只需要少量数字时,是否可以使用unsigned char类型?

    如果编写程序,并且我需要一个低于255的数字,是否可以使用 unsigned char 类型作为数字,例如,如果我需要一个数字来进行循环?是否有任何理由,包括坚持传统和惯例,坚持使用int和float等声明数字 . 例如,如果这样的代码永远不会被使用?或者在这种情况下使用unsigned char是一个好习惯,因为它分配的内存少于short int? #include <stdio.h&gt...
  • 2 votes
     answers
     views

    swift 3 iOS tableview数据源内存

    我有一个tableview作为新闻源 . 这些单元格由一系列新闻源项目填充 . 我从服务器获取JSON,从该输入创建新闻源项目并将它们附加到我的新闻源阵列 . 新闻源项目包含 Headers ,描述和图像字符串 . 在: override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -&gt...
  • 5 votes
     answers
     views

    为什么C中没有“memsize”,它返回使用malloc在堆中分配的内存块的大小?

    好 . 它可以在Visual Studio中的_msize中调用 . 但是,考虑到使用malloc分配的内存块,为什么不返回内存大小?因为我们无法判断malloc之后的返回指针指向了多少内存,所以我们可以使用这个“memsize”调用来返回我们需要的信息 . “memsize”将是特定于实现的,因为malloc / free 只是问我必须写一个wrapper回来存储一些额外的字节大小 .
  • 0 votes
     answers
     views

    C中的二维阵列内存分配崩溃

    我似乎在使用calloc对2D数组的内存分配有问题 . 为数组分配第二维时,calloc会在IDE外部作为独立的可执行文件崩溃,但在调试时可以正常工作 . 我已经走了我能想到的一切,并且为什么会发生这种情况而感到难过;特别是几天前工作正常的时候 . 这似乎是一种不会停止的自发故障 . 代码处于单独的函数中,被称为多次 . O = (double**)calloc(3*cc,sizeof(doubl...
  • 2 votes
     answers
     views

    Spark工作者要求荒谬的虚拟内存量

    我在2节点纱线集群上运行火花作业 . 我的数据集不是很大(<100MB),仅用于测试,工作人员因为要求过多的虚拟内存而被杀死 . 这里的金额是荒谬的 . 使用11GB物理内存2GB,使用300GB虚拟内存 . 16/02/12 05:49:43 WARN scheduler.TaskSetManager:阶段2.1中丢失的任务0.0(TID 22,ip-172-31-6-141.ec2.i...
  • 603 votes
     answers
     views

    建议使用哪种Python内存分析器? [关闭]

    我想知道我的Python应用程序的内存使用情况,并且特别想知道哪些代码块/部分或对象占用了大多数内存 . Google搜索显示商业广告是Python Memory Validator(仅限Windows) . 而开源的是PySizer和Heapy . 我没有尝试任何人,所以我想知道哪一个是最好的考虑: 提供大部分细节 . 我必须对代码进行最少或不做任何更改 .
  • 11 votes
     answers
     views

    为什么malloc(0)在Windows中返回非空地址?

    下面的代码在Windows中执行时返回一个地址,虽然我希望它返回NULL . int main() { char *ptr = NULL; ptr = malloc(0); printf("malloc returned = %u\n", ptr); } 什么可能促使malloc的这种实现?它背后有什么理由吗? 因为,这是一个0字节的内存,我没有尝试写任何...
  • 0 votes
     answers
     views

    使用值类型作为参数时的内存位置方式是什么

    我知道值类型和引用类型之间的一般区别,并且我也知道在引用类型中使用值类型时,此值类型实际上在堆上 . 例如: class ClassA{ public DateTime date1 = new DateTime(2008, 3, 1, 7, 0, 0); } 什么时候 ClassA a = new ClassA(); date1在堆上 我的问题是 如果我们将此date1用作方法中的参数,...
  • 9 votes
     answers
     views

    如何从Linux内核模块中的逻辑地址获取物理地址?

    除了手动遍历页面目录条目之外,有没有合适的方法来获取逻辑地址的物理地址?我发现有一个 follow_page 函数可以很好地完成内置的巨大且透明的大页面支持 . 但它没有导出到内核模块(为什么???)... 所以,我不能手动重新实现 follow_page 功能 .
  • 1 votes
     answers
     views

    是否有任何内核函数将物理页面转换为其虚拟地址?

    我通过 struct page *page=alloc_pages() 获得了一个巨大的页面,我想验证它是否是一个2MB的页面 . 是否有任何内核功能可用于将此页面转换为其虚拟地址?
  • 11 votes
     answers
     views

    内核虚拟内存如何映射到物理内存

    如何找到内核空间的内存映射? VA - > PA 我知道 proc 文件系统 /proc/pid/maps & /proc/pid/mappings ,它为我们提供了用户空间应用程序的映射 . 什么类似于查找内核空间映射? 谢谢!
  • 1 votes
     answers
     views

    内核中的物理内存分配

    我正在写一个内核模块,它将触发和外部PCIe设备从我的内部存储器读取数据块 . 为此,我需要向PCIe设备发送指向我想要发送的数据的物理内存地址的指针 . 最终,这些数据将使用 write() 函数(用户空间)和 copy_from_user() (内核空间)从用户空间写入内核 . 据我了解,我的内核模块将看到的地址仍然是虚拟内存地址 . 我需要一种方法来获取它的物理地址,以便PCIe设备可以找到...
  • 0 votes
     answers
     views

    如何从linux内核中的struct页面获取物理地址

    假设我从分配器获得指向 struct page 的指针,我怎么能得到相应的物理地址?内核是否提供实现它的功能?谢谢 .
  • 115 votes
     answers
     views

    在内存中我的变量存储在C中?

    通过考虑将内存分为四个部分:数据,堆,堆栈和代码,全局变量,静态变量,常量数据类型,局部变量(在函数中定义和声明),变量(在main函数中),指针,并动态分配空间(使用malloc和calloc)存储在内存中? 我认为他们将分配如下: 全局变量------->数据 静态变量------->数据 常量数据类型----->代码 局部变量(在函数中声明和定义)-----...
  • 5 votes
     answers
     views

    为特定类型分配所需的空间更少?

    我对C编程比较陌生,很难理解整个内存分配问题 . 让我们说,我这样做: int *n = malloc(sizeof(char)); // (assuming malloc doesn't return NULL of course) 这提供了指向int的指针,但是我没有为int分配足够的内存 . 为什么它会起作用呢?我甚至可以明确地将它转换为int,它不会打扰gcc . 我知道C编译器非常极简...
  • 1 votes
     answers
     views

    预测C中的malloc块大小网格

    我正在尝试优化我的动态内存使用情况 . 问题是我最初为从socket获得的数据分配了一些内存 . 然后,在新数据到达时,我正在重新分配内存,因此新到达的部分将适合本地缓冲区 . 经过一番探讨之后,我发现malloc实际上分配了比请求更多的块 . 在某些情况下显着更大;这里有来自malloc_usable_size(ptr)的一些调试信息: 请求284个字节,分配320个字节请求644个字节,重新...

热门问题