美文网首页
内存的一些问题

内存的一些问题

作者: nit小星星 | 来源:发表于2019-03-09 16:27 被阅读0次

void GetMemory2(char **p, int num)

{

 *p = (char *)malloc(sizeof(char) * num);

}

void Test2(void)

{

 char *str = NULL;

 GetMemory2(&str, 100); // 注意参数是 &str,而不是str

 strcpy(str, "hello");

 cout<< str << endl;

 free(str);

}

int *p=(*int)malloc(sizeof(int)*lenth);

void free(void *memblock);

为什么free函数不象malloc函数那样复杂呢?这是因为指针p的类型以及它所指的内存的容量事先都是知道的,语句free(p)能正确地释放内存。如果p是NULL指针,那么free对p无论操作多少次都不会出问题。如果p不是NULL指针,那么free对p连续操作两次就会导致程序运行错误。

https://www.cnblogs.com/KunLunSu/p/7787119.html

class obj

{

public:

void init();

void destroy();

obj();

~obj();

}

void testfun()

{

*obj a=(obj*)malloc(sizeof(obj));

a->init();初始化内存

a->destroy();清理工作

free(a);

}

如果在申请动态内存时找不到足够大的内存块,malloc和new将返回NULL指针,宣告内存申请失败。通常有三种方式处理“内存耗尽”问题。

void Func(void)

{

 A *a = new A;

 if(a == NULL)

 {

  return;

 }

 …

}

void Func(void)

{

 A *a = new A;

 if(a == NULL)

 {

  cout << “Memory Exhausted” << endl;

  exit(1);

 }

 …

}

看看内存是否申请成功

 有一个很重要的现象要告诉大家。对于32位以上的应用程序而言,无论怎样使用malloc与new,几乎不可能导致“内存耗尽”。我在Windows 98下用Visual C++编写了测试程序,见示例7。这个程序会无休止地运行下去,根本不会终止。因为32位操作系统支持“虚存”,内存用完了,自动用硬盘空间顶替。我只听到硬盘嘎吱嘎吱地响,Window 98已经累得对键盘、鼠标毫无反应。

  我可以得出这么一个结论:对于32位以上的应用程序,“内存耗尽”错误处理程序毫无用处。这下可把Unix和Windows程序员们乐坏了:反正错误处理程序不起作用,我就不写了,省了很多麻烦。

我不想误导读者,必须强调:不加错误处理将导致程序的质量很差,千万不可因小失大。

相关文章

  • 内存的一些问题

    void GetMemory2(char **p, int num) { *p = (char *)malloc(...

  • JAVA内存模型

    Java内存模型 在前面谈到了一些关于内存模型以及并发编程中可能会出现的一些问题。下面我们来看一下Java内存模型...

  • APM相关

    记录一下最近在扩展GT时遇到的一些问题 通过residentSize获取的常驻内存和Xcode上显示的内存值不一致...

  • CDH 运行一段时间就提示:请求 Service Monito

    由于研发环境服务器资源每台16G内存,受到内存等硬件限制,经常会出现一些问题。 CDH 运行一段时间就提示:请求...

  • 8.jmm内存模型

    jmm:java内存模型,它的提出是为了解决多线程情况下的一些问题 1:内存可见性 在一个CPU的4核下,L1、L...

  • 2019-02-25

    三,店内存在一些问题和见解: 1,做的不足的地方:服务和卫生做的不是特别够!缺乏排班互相...

  • Vue造成内存泄露的一些问题

    在vue文件中的script标签里定义变量导致的内存泄露如下,在vue文件定义了一个const变量,最终无法释放:...

  • rediscluster 动态扩容出现的问题(附带搭建步骤,相关

    业务场景 现场集群出现性能,内存不够的问题,现场运维又不会,然后开发顶上,做redis集群扩容时,出现了一些问题分...

  • app 性能优化

    UIKit性能调优实战讲解内存恶鬼drawRect关于性能的一些问题iOS应用性能调优的25个建议和技巧Colle...

  • @autoreleasepool的用法

    前二天去某土豪创业公司面试被问到了内存管理的一些问题,面试官提到了autoreleasepool的问题,但是由于项...

网友评论

      本文标题:内存的一些问题

      本文链接:https://www.haomeiwen.com/subject/tlospqtx.html