【发布时间】:2012-03-20 17:33:10
【问题描述】:
我想将字节接收到 conbuf.buffer。测试 1 或测试 2 中的任何一个都可以。我在 printf 语句中看不到任何价值。我是否正确传递了指针?如何为结构内的 char 指针分配内存。
typedef struct cBuf
{
int size;
char *buffer;
} cbuf;
class A
{
cbuf conbuf;
void test();
}
void A::test()
{
int buffersize = 20;
char buf[buffersize];
conbuf.buffer = (char *)malloc(buffersize * sizeof(char *));
// test 1
int n = socket.receivebytes(conbuf.buffer, buffersize);
// test 2
//int n = socket.receivebytes(buf, buffersize);
//strcpy(conbuf.buffer, buf);
printf("conbuf.buffer %s \n", conbuf.buffer);
}
【问题讨论】:
-
-1:你能发布一些实际编译的代码吗?
-
通过套接字发送的确切数据是什么?
-
使用
std::vector而不是手动分配内存。 -
@kevin:这是另一个大项目的一部分。我取出了我使用缓冲区的行。接收到的数据是一些字符数组。我必须手动分配内存。
标签: c++ pointers struct char malloc