【发布时间】:2014-01-21 21:53:37
【问题描述】:
我目前正在编写一个基于终端的十六进制编辑器。我有几个关于内存分配的问题。
为了跟踪用户所做的更改,我将它们写入数组数组,如下所示,[i][0] 是更改从文件开头的绝对偏移量,[i][1] 是更改本身:
unsigned long long writebuffer[10000][2];
但我有两个问题。第一个数组 (writebuffer[i][0]) 需要是 sizeof unsigned long long,但第二个数组 ([i][1]) 可以像 sizeof unsigned char 一样小。有可能做这样的事情吗??
我也可以动态分配 writebuffer 的第一个索引,这样我就不会像上面那样初始化它,而是更像:
unsigned long long **writebuffer;
然后用malloc()和realloc()更改第一个索引;而第二个索引为 2,但大小为 unsigned char。
【问题讨论】:
-
使用一个 unsigned long long 和一个 unsigned char 的结构?
-
太容易了。是的,有效
标签: c memory-management malloc