将一个char指针的一部分复制到另一个char指针

Copy part of a char pointer to another one

本文关键字:指针 char 一部分 复制 另一个 一个      更新时间:2023-10-16

我有一个这样的指针:

const u_char *packet;

从42个元素到某一点,我必须将它复制到另一个char指针中

u_char *payload = new u_char[];
int j = 0, l = 0;
while (j < header->caplen - 42 - 1) {
  if (j >= 42){
    payload[l] = packet[j];
    l++;
  }
  j++;
}
payload[l] = '';

它工作正常,但然后在某个数据包它给我这个错误:

Unhandled exception at 0x55B3FB53 (msvcr120d.dll) in eval_waic.exe: 0xC0000005: Access violation reading location 0xCCCCCCCC

知道为什么吗?它工作得很好,直到那个包!

您需要给payload足够的空间来存储结果。From what I see

u_char *payload = new u_char[header->caplen - 42];