実現したいこと
以下のソースでAにBをディープコピー?
(ポインタの先の内容をコピー)したいのですが、
うまくいっていません。
bstringCopy()内で実装できるディープコピーの手法を
ご教授いただけませんでしょうか。
発生している問題・エラーメッセージ
Segmentation fault(コアダンプ)
該当のソースコード
C
1test.h 2typedef struct tagbstring* bstring; 3 4struct tagbstring { 5 int mlen; 6 int slen; 7 unsigned char* data; 8} 9 10 11test.c 12 13#include <stdio.h> 14#include "test.h" 15#include <string.h> 16#include <stdlib.h> 17 18void bstringCopy(bstring dst, bstring src){ 19 dst->mlen = src->mlen; 20 dst->slen = src->slen; 21 22 size_t byte = sizeof(char); 23 size_t size = byte * strlen(src->data) + byte; 24 dst->data = malloc(size); 25 strcpy(dst->data, src->data); 26 27 return; 28} 29 30int main(){ 31 bstring a; 32 bstring b; 33 34 bstringCopy(a, b); 35 36 return 0; 37}
提示のコードでどういう不具合があるんでしょうか。
そして、それをどう言う風にしたいんでしょう。
