1 c++
我只是为一个角色分配一些内存,然后想做一些指针算法.在这种情况下,我想将'\ x0a'写入字节32,如下所示:
#define HDR_SIZE 32
int size = 52;
unsigned char *readXPacket = (unsigned char *) malloc (size * sizeof (unsigned char));
*readXPacket + HDR_SIZE = '\x0a';
Run Code Online (Sandbox Code Playgroud)
当我尝试这样做时,我收到以下错误消息:赋值中的非值.谁知道这里有什么问题?
谢谢
小智 6
显而易见的是什么问题:
readXPacket[HDR_SIZE] = '\x0a';
Run Code Online (Sandbox Code Playgroud)
这既短又清晰.当你使用C++时,为什么不说:
unsigned char * readXPacket = new unsigned char[size];
Run Code Online (Sandbox Code Playgroud)
或者更好的是:
std::vector <unsigned char> readXPacket( size );
Run Code Online (Sandbox Code Playgroud)
并让C++为您管理内存.