Gcc 通过memcpy从unsigned char*缓冲区获取long

Gcc 通过memcpy从unsigned char*缓冲区获取long,gcc,memcpy,Gcc,Memcpy,在我从binary.exe数据定义并填充缓冲区之后-- 那个么我如何得到缓冲区121--124位置的字节呢 作为长期价值 我试过了 long Hint = 0; memcpy(Hint, buffer[121], 4); printf("Hint=x%x\n", Hint); 但我得到的只是memcpy上的一个abend(异常终止)这里有一个简单的方法(我把数字放在缓冲区中作为示例): 这是十六进制的数字121-124 long Hint = 0; memcpy(Hint

在我从binary.exe数据定义并填充缓冲区之后--

那个么我如何得到缓冲区121--124位置的字节呢 作为长期价值

我试过了

long Hint = 0;
memcpy(Hint,  buffer[121], 4);
printf("Hint=x%x\n", Hint);

但我得到的只是memcpy上的一个abend(异常终止)

这里有一个简单的方法(我把数字放在缓冲区中作为示例):

这是十六进制的数字121-124

long Hint = 0;
memcpy(Hint,  buffer[121], 4);
printf("Hint=x%x\n", Hint);
unsigned char *buffer ;         /*buffer*/
buffer = (unsigned char*) malloc (300) ; /*allocate space on heap*/

for(int i=0;i<300;i++) /*initialize buffer with numbers for the demo*/
    buffer[i] =  i;

long Hint = 0;
long *h = (long *)&buffer[121];
Hint = *h;
printf("Hint=0x%x\n", Hint);
Hint=0x7c7b7a79