让我说我为自己做了一些记忆:
byte *header = calloc(5 + ZHEADERSIZE, sizeof(byte));
这给了我一个0的数组。但是如果我想对内存进行自定义初始化呢?以下代码是数组文字的相当详细的初始化。请注意,它实际上包含变量,所以我不能只记忆所有数组。我想知道我是否可以为一块内存块复制这种初始化方式,而不必手动插入它们。
unsigned char zhead[] =
{
0x00, 37, 0, 218, 0xFF,
0x50, 0x4b, 0x03, 0x04,
0x14,
0x00,
0x00, 0x00,
0x08, 0x00,
0x08, 0x03,
0x64, 0x3c,
0xAA, 0xBB, 0xCC, 0xDD,
csize, (csize>>8), 0, 0,
uncsize, (uncsize>>8), 0, 0,
0x07, 0x00,
0x00, 0x00,
'r', '/', 'r', '.', 'z', 'i', 'p'
};
答案 0 :(得分:7)
使用calloc
,您不能
const char prototype[] = { 'a', 'b', 'c' };
int main()
{
char * data = malloc(sizeof prototype);
memcpy(data, prototype, sizeof prototype);
data[1] = 'z'; // fill in custom data
}