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

时间:2014-08-04 09:39:03

标签: c++ pointers

我有一个像这样的指针:

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] = '\0';

它运行正常但是在某个数据包中它给了我这个错误:

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

知道为什么吗?它工作得很好直到包!我查了一下,这不是包裹的错误..

1 个答案:

答案 0 :(得分:0)

您需要为payload提供足够的空间来存储结果。从我看到的

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

应该这样做。