我推送新元素到char数组前面有问题。我在我的程序中有一个函数,它有两个参数:一个指向char数组的指针和一个指向int的指针。该函数用一些数据填充数组,并返回此数组中元素的数量。如何插入,将新元素添加到char数组中
int function1(char* buffer , int* outSize);
buffer[1000]
int size;
result = function1(buffer , &size);
// after this a get some data in buffer and count how many data is in buffer. let's say 456 elements
// now a try push to front two new bytes as size this array
finallBuffer *char = new char[size+2];
memcpy(finallyBuffer, (char*)&size, 2); // here a get size in two bytes and put to finnalBuffer
// next I try just copy to finnalyBuffer received data from Buffer
strcat(finallyBuffer , buffer);
doSomething(finallyBuffer);
delete []finallyBuffer;
在此之后在finnalyBuffer我只保存大小两个字节。为什么我看不到来自缓冲区的数据?
在最后我要实现新表在前面的两个新的字节。这两个字节是大小旧的表。比方说,接收到的数据HEVE只有5个字符
char table[5] = {'a','b','b','c','t'}
;
所以尺寸为5.5两个字节是char size = {'5','0'};
结果应该是的样子。
char table[5] = {'5','0','a','b','b','c','t'}
;
你是什么意思“推到前面”? – Olaf
这不是C.不要添加不相关的标签。 – Olaf
你有没有考虑过使用'struct'?它将有2个成员:'int numBytesRead;字符缓冲区[1000]'。 –