我正在为学校做一个任务,我正在慢慢地实现它,我不知道为什么我的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) 我有一个数组中表示的最大堆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))),任何想法?
我写了一个示例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集合(列表,映射等)来缓存一些数据,这样我就可以使用这个缓存而不是直接检查数据库.我唯一担心的是集合大小,我希望这个缓存保存,假设只有1000个条目,一旦达到此计数,我想删除最旧的条目并添加一个新条目.这可能吗?
我在我的应用程序中看到非常大的堆大小,但使用的内存非常小:
堆大小:10 GB +,已用内存:500 MB
这解释了什么?为什么堆大小不会减少. 记忆图http://i48.tinypic.com/b5423a.png
我的java内存参数如下:
-Xms8448m -Xmx12544m -XX:PermSize = 192m -XX:MaxPermSize = 256m -XX:+ UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction = 60
请指教,为什么这种奇怪的行为.我可以看到在图中垃圾收集使用过的内存,但堆内存有什么问题?
可能重复:
malloc可以分配的最大内存!
我怎么知道我可以占用的堆的最大大小malloc().我使用的是MS Visual Studio 2010.
我有一个用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) 我面临着极大的担忧.我目前正参与三明治课程,我正在学习如何在嵌入式系统上开发软件 - 就像在open1788板上一样.
我计划实现双缓冲功能,因为我可以在液晶屏上看到闪烁.确实可以在绘制时查看形状!
通过双缓冲,重绘整个屏幕的速度足够快.也许我应该深入研究管理裁剪,所以我只需要重新绘制需要的部分屏幕?但那不是问题.
所以,我写了几个函数来处理双缓冲选项.如果我不希望软件使用双缓冲,那么我不会为它分配内存; 否则我会.
问题是为堆分配的默认空间最多为1024字节.我的临时缓冲区长度为261120字节!(每272像素高481像素宽,每一个16bpp).
因此,malloc返回NULL.
我采取的第一个解决方案是放置静态缓冲区,我的意思是:
static WORD s_double_buf[481*272];
Run Code Online (Sandbox Code Playgroud)
但明显的缺点是,即使您不使用双缓冲,它仍然会被分配.
第二种解决方案是编辑配置文件以使堆更大,每个替换1024个字节,例如1048576字节(0x100000).我不喜欢这个解决方案,因为我应该专注于节省内存空间.
也许我非常想念嵌入式编程技巧?根据那个,最好的解决方案是什么?我怎么能取得进步?我没有告诉你我阅读和挖掘数据表的混乱能力.
我真的很感激,如果有人能为我提供初学者的参考资料,大多数都适合我正在编程的电路板.
提前致谢!
这是一个简单的代码,其中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) 我开始在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对象呢?