【发布时间】:2013-11-17 15:58:24
【问题描述】:
如果我要为一个 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 指向第一项,并通过位图访问这两个变量吗?显然这主要是针对理论的,因为我觉得问题会有更好、更明显的答案。
【问题讨论】:
-
内存不知道它所保存的数据的含义。
-
是的
short *foo = malloc(4* sizeof *foo);可能是这里。