这一直困扰着我很长一段时间:让我说我有一个功能:
void test(){
int t1, t2, t3;
int t4 = 0;
int bigvar[10000];
// do something
}
Run Code Online (Sandbox Code Playgroud)
计算机如何处理变量的内存分配?
我一直认为变量空间保存在计算机将读取的.exe中,这是正确的吗?但据我所知,该bigvar数组不会占用int.exe中的10000个元素空间,因为它未初始化.那么当我调用函数时,它的内存分配如何工作?
我想在创建一些游戏窗口(DirectX)后调整其大小,游戏窗口允许鼠标从边缘调整大小.但是我希望自动化这个,因为鼠标很难做到这一点:光标在边缘是不可见的,我必须首先解除对焦窗口,以便能够通过点击边缘来调整大小.要明确:我没有这个游戏的来源,所以我必须制定自己的程序才能做到这一点.
如何才能做到这一点?或者更好:是否已经存在执行这些操作的程序?
这可能吗?当我把char作为类型时,我得到奇怪的错误消息:
inline bool operator==(const char *str1, const char *str2){
// ...
}
Run Code Online (Sandbox Code Playgroud)
错误信息:error C2803: 'operator ==' must have at least one formal parameter of class type...我根本不明白.
我在想是否可以直接比较像:
const char *str1 = "something";
const char *str2 = "something else";
const char str3[] = "lol"; // not sure if this is same as above
Run Code Online (Sandbox Code Playgroud)
然后比较:
if(str1 == str2){
// ...
}
Run Code Online (Sandbox Code Playgroud)
等等
但我也希望它能与之合作:
char *str = new char[100];
Run Code Online (Sandbox Code Playgroud)
和:
char *str = (char *)malloc(100);
Run Code Online (Sandbox Code Playgroud)
我假设我使用这种方式的每个char数组都会以NULL字符结束,所以检查应该是可能的,但我知道它可能是不安全的等等.我只是想知道这是否可行,以及如何.
我想"听"其他一些应用程序,并决定在终止时做什么.
怎么样?
编辑:这两个程序在同一台计算机上运行,我想知道何时关闭其他程序.然后在其他程序中执行操作.我无法修改其他程序代码.我可能会也可能不会从应用程序A启动应用程序B.我可以通过其完整路径识别应用程序B.
让我说我在一些文件中存储标题,但标题的某些部分是动态长度,如下所示:
struct HeaderTest {
int someparam;
int more;
int arrsize; // how big array, read arrsize elements into arr:
int arr[arrsize]; // not valid
};
Run Code Online (Sandbox Code Playgroud)
是否有一些优雅的方式将动态数据读入结构?
我需要为每种类型使用不同的函数,但大多数代码保持不变.
如何测试我收到的模板函数参数中的数据类型(或结构)?