小编sol*_*var的帖子

使用特定JRE运行JAR文件

Windows上有没有办法使用位于特定文件夹中的JRE运行JAR文件?类似于Eclipse在某些路径中查找其JRE的方式.某些Windows可执行代码(C或C++)或批处理文件都可以完成这项工作.谢谢!

java windows jar batch-file

24
推荐指数
3
解决办法
6万
查看次数

奇怪的C++内存分配

我用C++创建了一个简单的类Storer,用于分配内存.它包含六个字段变量,所有这些变量都在构造函数中分配:

int x;
int y;
int z;
char c;
long l;
double d;
Run Code Online (Sandbox Code Playgroud)

我对如何存储这些变量感兴趣,所以我编写了以下代码:

Storer *s=new Storer(5,4,3,'a',5280,1.5465);
cout<<(long)s<<endl<<endl;
cout<<(long)&(s->x)<<endl;
cout<<(long)&(s->y)<<endl;
cout<<(long)&(s->z)<<endl;
cout<<(long)&(s->c)<<endl;
cout<<(long)&(s->l)<<endl;
cout<<(long)&(s->d)<<endl;
Run Code Online (Sandbox Code Playgroud)

我对输出很感兴趣:

33386512

33386512
33386516
33386520
33386524
33386528
33386536
Run Code Online (Sandbox Code Playgroud)

为什么char c占用四个字节?sizeof(char)当然返回1,那么为什么程序分配的内存超出了它的需要?这证实使用以下代码分配了太多内存:

cout<<sizeof(s->c)<<endl;
cout<<sizeof(Storer)<<endl;
cout<<sizeof(int)+sizeof(int)+sizeof(int)+sizeof(char)+sizeof(long)+sizeof(double)<<endl;
Run Code Online (Sandbox Code Playgroud)

打印:

1
32
29
Run Code Online (Sandbox Code Playgroud)

确实确实,不必要地分配了3个字节.任何人都可以向我解释为什么会这样吗?谢谢.

c++ memory object char

12
推荐指数
2
解决办法
721
查看次数

标签 统计

batch-file ×1

c++ ×1

char ×1

jar ×1

java ×1

memory ×1

object ×1

windows ×1