conbuf.bufferにバイトを受け取りたいです。テスト1またはテスト2のいずれかがOKです。私はprintfステートメントの値を見ていません。ポインタを正しく渡していますか?どのように構造体内のcharポインタにメモリを割り当てるのですか?構造体C++の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:実際にコンパイルするコードを投稿できますか? –
ソケットを介して送信される正確なデータは何ですか? – Mark
手動メモリ割り当ての代わりに 'std :: vector'を使います。 –