메뉴 건너뛰기

창작에 관련된 질문이나 간단한 팁, 예제를 올리는 곳

바이너리(2진수) 저장 아시죠?
그런데 포인터 변수를 만들어서 동적 할당을 했을때 그 포인터 변수도 포함되어 저장되면
정상적으로 저장이 안 되는 건가요?
왜 그러냐면
제가 저장 방식을 모든 데이터를 하나의 클래스 속에 넣어서 그 1개의 클래스 인스턴스를 동째로  Write 함수로 쑤셔넣어서 하게 했는데
문자열 클래스가 제대로 들어가지지가 않아서요 ㅡ.ㅡ;;
조회 수 :
3565
등록일 :
2008.12.22
03:13:01 (*.50.69.16)
엮인글 :
게시글 주소 :
https://hondoom.com/zbxe/index.php?mid=study&document_srl=272431

똥똥배

2008.12.22
07:43:41
(*.22.20.158)
아마도 CString 함수를 쓰셨겠죠?
여기서 CString은 문자열 값을 모두 가지지 않고 어떤 주소를 가리키는 포인터 값입니다.
그러니까 Write 당시에는 문자열이 있는 위치를 가리키고 있었겠지만
로드해보면 그 위치에 문자열이 사라져 있어서 에러가 나는 겁니다.
각주구검 아십니까? 그거 비슷한 겁니다.

문자열을 저장하려면 포인터가 가리키는 위치에 있는 메모리까지 모두 저장해야 합니다.
CString::GetBuffer()같은 것을 이용해서 말이죠.
그리고 저장용으로 CString을 안 쓰는 게 좋을 겁니다. 쓸데없는 데이터들도 저장하기 때문에.
아까 말한 이미 존재하지 않는 문자열을 가리키고 있는 포인터 값이라든가...
저장은 그냥 char* 형으로 하세요. (물론 주소값만 저장하면 결과는 마찬가지입니다.)

A.미스릴

2008.12.23
02:25:58
(*.50.69.16)
char *도 포인터를 쓰기는 마찬가지 같은데 어떤식으로 저장해야 하나요 ㅡ.ㅡ;;
배열을 써야하나...

똥똥배

2008.12.23
18:47:24
(*.239.144.2)
char*이 가리키고 있는 메모리에서 필요한 내용을
fwrite로 저장하면 됩니다. fwrite 파라미터 설정으로 얼만큼 저장할지 설정할 수 있잖습니까.
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
165 COgg 질문 [3] A.미스릴 2008-06-29 3710
164 문D라이브로 더블드래곤을 만들자(2) [6] file 똥똥배 2008-04-18 3611
» C++ 질문 2 [3] A.미스릴 2008-12-22 3565
162 문D라이브로 더블드래곤을 만들자(7) file 똥똥배 2008-04-27 3480
161 lua와 C의 연동에서 상수(define이나 enum) 값처리 똥똥배 2011-05-25 3447
160 흥크립트 질문. 글자에 관해서 [1] 에리 2009-03-21 3430
159 문D라이브로 더블드래곤을 만들자(3) file 똥똥배 2008-04-18 3430
158 [수정]이거왜이러는거죠;; [4] file 상상악수 2008-08-19 3254
157 그럼 질문으로... [1] 쿠로쇼우 2008-09-26 3243
156 문D라이브로 더블드래곤을 만들자(4) [2] file 똥똥배 2008-04-20 3213
155 OgreOde 사용기 똥똥배 2008-03-25 3184
154 문D라이브로 더블드래곤을 만들자(6) [2] file 똥똥배 2008-04-23 3114
153 문D라이브로 더블드래곤을 만들자(5) [6] file 똥똥배 2008-04-21 3072
152 C++ 데이터의 바이트 용량 임의로 정의할수 없나영 [1] A.미스릴 2008-04-21 3059
151 똥똥배의 게임대회 이야기(3) [1] 혼돈 2007-02-08 3007
150 문D라이브로 더블드래곤을 만들자(8) [1] file 똥똥배 2008-05-16 2973
149 똥똥배의 게임대회 이야기(1) 혼돈 2007-02-06 2953
148 문D 라이브 질문 [5] 대슬 2008-05-15 2889
147 문D라이브로 더블드래곤을 만들자(9) 똥똥배 2008-05-17 2889
146 똥똥배의 게임대회 이야기(4) [1] 혼돈 2007-02-10 2881