标签: memory-management

这种方式分配内存不好吗?

我很想知道如何malloc分配内存(你能告诉我吗?),所以我试了一下.

这是分配内存的坏方法吗?

void* myMalloc(unsigned int size) {
    return (void*) new bool[size];
}
Run Code Online (Sandbox Code Playgroud)

c++ memory-management

0
推荐指数
1
解决办法
303
查看次数

如何在android中释放内存

我需要释放下面的指针,如何释放画布,油漆和矩阵的内存?

 Canvas pcanvas = new Canvas();

 Paint mPaint = new Paint(); 

 Matrix matrix = new Matrix(); 
Run Code Online (Sandbox Code Playgroud)

提前致谢.

android memory-leaks memory-management out-of-memory

0
推荐指数
1
解决办法
1万
查看次数

内存是malloc'ed而不是释放

我看过这个 -

当程序终止时,将释放由malloc(例如)分配并且未使用free()函数释放的内存.并且它由opearting系统完成.那么什么时候有或没有垃圾收集器进入图片?

或者是并非所有操作系统都在程序终止时自动释放内存?

c memory malloc pointers memory-management

0
推荐指数
1
解决办法
224
查看次数

Objective-C:如果不释放对象,为什么重要?

如果我正在搞乱XCode并尝试学习Objective-C,如果我经常忘记释放对象,它是否对我的系统造成任何威胁?不释放物体的真正后果是什么?如果我重新启动计算机,这些内存泄漏会持续存在吗?

我主要搞乱NSStrings和NSTimers以及类似的东西,没什么大不了的.我只是担心它弄乱了我的电脑.

有没有办法检查是否有未发布的对象?如果他们想检查一堆代码以查看是否存在任何这些内存泄漏,该怎么办?

xcode memory-management objective-c

0
推荐指数
2
解决办法
197
查看次数

在Objective-C中神秘发布NSDictionary?

我正在为Quartz Composer定制补丁的最后润色.截至目前,我几乎所有内容都被删除了补丁,当我尝试NSLog NSDictionary值为ivar时,它崩溃告诉我BAD ACCESS,并且当我分配它时,它在上次执行时完美运行.

我的代码看起来像这样:

- (BOOL) startExecution:(id<QCPlugInContext>)context
{
   lastBoutData = [[NSDictionary alloc] init ];

   return YES;
}

- (BOOL) execute:(id<QCPlugInContext>)context atTime:(NSTimeInterval)time withArguments:(NSDictionary*)arguments
{

    NSLog(@"self.inputBoutData: %@", self.inputBoutData);
    NSLog(@"lastBoutData: %@", lastBoutData);


    // have new data, put it on the output
    self.lastBoutData = [NSDictionary dictionaryWithDictionary:self.inputBoutData];
    NSLog(@"assigned: %@", lastBoutData);

    return YES;
}
Run Code Online (Sandbox Code Playgroud)

我可以看到日志显示所有三个NSLog行完美地工作,直到self.inputBoutData输入.然后,我看到self.inputBoutData被成功复制到循环的最后一个NSLog行中的lastBoutData.

在下一次执行run:atTime:withArguments:中,self.inputBoutData仍然是满的,但lastBoutData再次为空!我不明白这是怎么回事.然后,它运行一个循环,就像最后一个循环一样,并成功将self.inputBoutData复制到lastBoutData,然后再次记录它.下一次,我在第二次NSLog语句之前得到了BAD ACCESS.

我收到一些错误消息,告诉我lastBoutData不是NSDictionary,所以出于绝望,我添加了[lastBoutData retain],并且它没有崩溃.我没有发布这种伊娃,所以我不确定为什么要保留它.在许多其他补丁中我和其他ivars做的事情非常相似,没有任何问题.我能错过什么?为什么这件事在我身上释放,或者甚至发生了什么?

memory-management objective-c nsdictionary retain ivar

0
推荐指数
1
解决办法
181
查看次数

CUDA内存限制

如果我尝试向我的CUDA设备发送一个比可用内存大的结构,那么CUDA会给我任何警告或错误吗?

我问这是因为我的GPU有1024 MBytes(1073414144字节)全局内存总量,但我不知道应该如何处理和最终的问题.

那是我的代码:

#define VECSIZE 2250000
#define WIDTH 1500
#define HEIGHT 1500



// Matrices are stored in row-major order:
// M(row, col) = *(M.elements + row * M.width + col)
struct Matrix
{

    int width;
    int height;
    int* elements;

};


   int main()
   {


Matrix M;
M.width = WIDTH;
M.height = HEIGHT;
M.elements = (int *) calloc(VECSIZE,sizeof(int));   

int row, col;   


// define Matrix M
// Matrix generator:
for (int i = 0; i < M.height; i++)
    for(int j = 0; …
Run Code Online (Sandbox Code Playgroud)

memory memory-management cuda

0
推荐指数
1
解决办法
3991
查看次数

进程的内存地址空间

我知道Windows 32位允许任何进程大约2千兆字节的内存地址空间.2千兆字节= 2147483648字节.我试图分配堆内存超过2147483648字节,我没有看到任何错误或异常,这个代码:

# include<iostream>

int main(){

    void *x=malloc(2147489999);
    free(x);
    system("pause");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

是什么原因?

c windows malloc memory-management

0
推荐指数
1
解决办法
353
查看次数

双链接列表获取错误'指针被释放未被分配'

我创建了一个双链表类,并尝试将它与我创建的Vector类一起使用,以便创建链接列表的向量,但是在程序结束时,我似乎得到一个错误 malloc: *** error for object 0x100100be0: pointer being freed was not allocated ,我假设已经与析构函数有关,也就是Xcode指向我的地方.我该如何规避这个?我认为我的析构函数工作正常,但我想我错了.

测试文件:

#include <iostream>
#include <string>
#include "Vector.h"
#include "doubleLL.h"

using namespace std;

int main (int argc, const char * argv[])
{

    Vector<double_llist<string> > listWords(27);
    double_llist<string> numbers;
    numbers.push_back("one");
    numbers.push_back("two");
    numbers.push_back("three");
    listWords[0] = numbers;
    listWords[0].print();
}
Run Code Online (Sandbox Code Playgroud)

doubleLL.h:

#ifndef DOUBLELL_H
#define DOUBLELL_H
#include <iostream>
using namespace std;

template <class T>
class double_llist {
private:
    struct node {
        T data;
        node* prev;
        node* next;
        node(T t, node* p, node* n) …
Run Code Online (Sandbox Code Playgroud)

c++ destructor memory-management doubly-linked-list

0
推荐指数
1
解决办法
773
查看次数

如何分配堆指针

假设我有一个对象,其目的是为对象类型MyObject保存一堆指针,并且假设我想要一个将新的MyObjects添加到集合中的函数,如下所示:

void MyCollection::addObject(){
    MyObject *newObject = new MyObject();
    MyCollection.add(mycollection, newObject);
}
Run Code Online (Sandbox Code Playgroud)

让我们说MyCollection.add接受一个特定的集合对象和一个指针,并以某种方式在内部存储它.但是这个函数的问题是当newObject本身是持久的时,*newObject指针在函数调用之后被销毁,所以add()函数不再有一个真正指向该对象的指针.是否有任何好方法以某种方式制作持久性指针?

谢谢

c++ memory-management

0
推荐指数
1
解决办法
175
查看次数

在Java中垃圾收集对象的方法

有没有垃圾收集对象的方法?据我所知finalize(),如果有任何对象要收集垃圾,就会被调用.

java garbage-collection memory-management

0
推荐指数
1
解决办法
1040
查看次数