如果我要为一个 4 字节的变量初始化内存,我可以将两个 2 字节的变量指向为它存储的内存吗?我正在尝试进一步了解内存管理和理论。
我正在考虑的一个例子:
int main() {
short* foo = malloc(4*(foo)); // sizeof(*foo)?
/*in which sizeof will return 2 so I could say
* malloc(20)
* so could I say malloc(2*sizeof(long))?
*/
}
或者类型通常在堆上声明为彼此相邻,即一个块保留为长,而一个块保留为短类型变量?
编辑 我忘了包括一个问题。如果我要声明两个彼此相邻的 short 类型的变量(一个数组),我可以安全地将 long 指向第一项,并通过位图访问这两个变量吗?显然,这主要是针对理论的,因为我觉得对问题会有更好、更明显的答案。