标签: heap

我的park_car函数有什么问题?

我正在为学校做一个任务,我正在慢慢地实现它,我不知道为什么我的park_car功能不起作用,我只是想做一个测试,程序崩溃......这是我的代码.

PS:我无法更改,***p2parkboxes因为它像启动文件一样在大多数其他变量中给出.我只想看看0楼的第一个元素:HH-AB 1234.非常感谢你的帮助.PS2:我不能使用std :: string,因为它不允许执行任务.

#include <iostream>
#include <cstring>
using namespace std;

#define EMPTY "----------"
class Parkbox{
    char *license_plate; // car's license plate
    public:
    Parkbox(char *s = EMPTY); // CTOR
    ~Parkbox(); // DTOR
    char *get_plate(){return license_plate;}
};
class ParkingGarage{
    Parkbox ***p2parkboxes;
    //int dimensions_of_parkhouse[3]; // better with rows,columns,floors
    int rows,columns,floors; // dimensions of park house
    int total_num_of_cars_currently_parked;
    int next_free_parking_position[3];
    // PRIVATE MEMBER FUNCTION
    void find_next_free_parking_position();
    public:
    ParkingGarage(int row, int col, int flr);// CTOR,[rows][columns][floors]
    ~ParkingGarage(); // DTOR
    bool …
Run Code Online (Sandbox Code Playgroud)

c++ heap multidimensional-array

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

从O(n*log(log(n)))中的最大堆构建排序列表?

我有一个数组中表示的最大堆A,我有以下问题:

Is it possible to build a sorted list , based on the maximum 
heap - A - in O(n*log(log(n))) ? 
Run Code Online (Sandbox Code Playgroud)

我的回答:不,我们不能!我们总是可以 在(最糟糕的情况下)运行A并执行MergeSort O(n*log(n))或QuickSort .O(n*log(n))O(n^2)

我想也许可以构建基于的实际堆A,这将采取O(n),然后从中提取所有元素O(n*log(n)),但我在这里没有获得任何东西.

目前我看不到任何选择O(n*log(log(n))),任何想法?

sorting algorithm heap

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

堆:幸存者空间

我写了一个示例java应用程序,它分配内存然后永远运行.
为什么幸存者空间使用的内存为0kbytes?

    List<String> stringlist = new ArrayList<String>();

    while (true) {
        stringlist.add("test");
        if (stringlist.size() >= 5000000)
            break;
    }

    while (true)
        for (String s : stringlist);
Run Code Online (Sandbox Code Playgroud)

java memory heap

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

我想使用java集合以加快处理速度但同时避免内存堆异常?

我想使用一个java集合(列表,映射等)来缓存一些数据,这样我就可以使用这个缓存而不是直接检查数据库.我唯一担心的是集合大小,我希望这个缓存保存,假设只有1000个条目,一旦达到此计数,我想删除最旧的条目并添加一个新条目.这可能吗?

java heap collections map data-structures

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

非常大的堆大小,但小的使用内存

我在我的应用程序中看到非常大的堆大小,但使用的内存非常小:

堆大小:10 GB +,已用内存:500 MB

这解释了什么?为什么堆大小不会减少. 记忆图http://i48.tinypic.com/b5423a.png

我的java内存参数如下:

-Xms8448m -Xmx12544m -XX:PermSize = 192m -XX:MaxPermSize = 256m -XX:+ UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction = 60

请指教,为什么这种奇怪的行为.我可以看到在图中垃圾收集使用过的内存,但堆内存有什么问题?

java memory heap garbage-collection

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

malloc()的最大大小

可能重复:
malloc可以分配的最大内存!

我怎么知道我可以占用的堆的最大大小malloc().我使用的是MS Visual Studio 2010.

c heap malloc visual-studio

1
推荐指数
2
解决办法
9409
查看次数

测量总空间函数在整个生命周期中分配堆和堆栈

我有一个用C++编写的递归函数,它使用动态分配2D数组new.我怎样才能测量在整个生命周期内空间函数在堆和堆栈上分配的总量?

以下是如何测量Stack的示例(不是我的代码).

unsigned int maxStackLocation ; 
unsigned int minStackLocation ; 
main () 
{ 
    //get the address of a local variable before calling Quicksort 
    //the stack grows down, so this is the max stack location 
    int localVariable;
    void *currPtrLocation = (void*)(&localVariable); 
    maxStackLocation = *(unsigned int *)(&currPtrLocation); 
    //we get the value for the minimum stack location in quicksort itself 
    //call quicksort 
    Quick (A, num); 
    space = maxStackLocation - minStackLocation;
} 
//some redundant function whose stack usage will be measured
void …
Run Code Online (Sandbox Code Playgroud)

c++ heap stack memory-management dynamic-memory-allocation

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

在lpc1788上进行双缓冲

我面临着极大的担忧.我目前正参与三明治课程,我正在学习如何在嵌入式系统上开发软件 - 就像在open1788板上一样.

我计划实现双缓冲功能,因为我可以在液晶屏上看到闪烁.确实可以在绘制时查看形状!

通过双缓冲,重绘整个屏幕的速度足够快.也许我应该深入研究管理裁剪,所以我只需要重新绘制需要的部分屏幕?但那不是问题.

所以,我写了几个函数来处理双缓冲选项.如果我不希望软件使用双缓冲,那么我不会为它分配内存; 否则我会.

问题是为堆分配的默认空间最多为1024字节.我的临时缓冲区长度为261120字节!(每272像素高481像素宽,每一个16bpp).

因此,malloc返回NULL.

我采取的第一个解决方案是放置静态缓冲区,我的意思是:

static WORD s_double_buf[481*272];
Run Code Online (Sandbox Code Playgroud)

但明显的缺点是,即使您不使用双缓冲,它仍然会被分配.

第二种解决方案是编辑配置文件以使堆更大,每个替换1024个字节,例如1048576字节(0x100000).我不喜欢这个解决方案,因为我应该专注于节省内存空间.

也许我非常想念嵌入式编程技巧?根据那个,最好的解决方案是什么?我怎么能取得进步?我没有告诉你我阅读和挖掘数据表的混乱能力.

我真的很感激,如果有人能为我提供初学者的参考资料,大多数都适合我正在编程的电路板.

提前致谢!

c embedded heap double-buffering

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

从函数返回本地var字符串失败,而local var int和char工作正常.为什么?

可能重复:
区别 - 从函数返回'local'char*与从函数返回'local'int*

这是一个简单的代码,其中3个不同的函数[localStrPtr,localIntPtr,localCharPtr ]在它们各自的函数中返回指向它们的局部变量[string,integer,char]的指针.

码:

#include <stdio.h>

char*  localStrPtr (char*);
int*   localIntPtr (int, int);
char*  localCharPtr (char);

main()
{
    int *pInt;
    char *pChar;

    printf( "localStrPtr = %s\n", localStrPtr("abcd") );

    pInt = (int*) localIntPtr(3, 5);
    printf( "localIntPtr = %d\n", *pInt );

    pChar = (char*) localCharPtr('y');
    printf( "localCharPtr = %c\n", *pChar );
}

char* localStrPtr(char* argu)
{
    char str[20];
    // char* str = (char*) malloc (20);

    strcpy (str, argu);
    return str;
}

int* localIntPtr (int argu1, …
Run Code Online (Sandbox Code Playgroud)

c c++ variables heap stack

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

为什么对象ref1在Console.WriteLine(ref1)之后为GC准备好了?

我开始在Nutshell中阅读c#5.0,现在我在Stack和Heap章节中有关于GC如何使用堆对象的示例:

StringBuilder ref1 = new StringBuilder ("object1");
Console.WriteLine (ref1);
// The StringBuilder referenced by ref1 is now eligible for GC.
Run Code Online (Sandbox Code Playgroud)

所以作者说在Console.WriteLine之后ref1对象已准备好用于GC,但是如果我想在我的程序中稍后使用ref1对象呢?

c# heap stack

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