배열에 저장된 값을 다른 공간에 넣어야 하는데요...

facered79의 이미지

먼저 header file내에struct 는 아래와 같습니다.

typedef struct{
       char time_stamp[200];
} msg;

그리고 소스파일에서

msgRshabTrapInd *trap_body;
char safe_bfr[200];
sprintf(safe_bfr,"%.4d-%.2d-%.2d %.2d:%.2d:%.2d",
           now_parsed->tm_year+1900.....);

이렇게 된 상황에서 trap_body->time_stamp 에 safe_bfr의 값을 넣어줄려면 어케 해야 하는지요..

이런 저런 방법을 다 쓰고 있는데 다 세그멘테이션 폴트가 뜨네요..

peccavi의 이미지

포인터 객체에 데이터를 저장하려면 먼저 그 객체에 맞는 크기의 메모리를 할당해 주어야 합니다.
msg *trap_body = new msg;

----
jai guru deva om...

doldori의 이미지

time stamp를 문자열로 저장하고 싶으신 건가요? 그렇다면 asctime()이나
ctime()을 쓰면 됩니다. 그리고 trap_body를 malloc()으로 할당해야 할 상황이
아니라면 그냥 스택에 생성하는 것이 편합니다. safe_bfr도 필요가 없어 보이네요.

struct tm* now_parsed;
msg trap_body;
strcpy(trap_body.time_stamp, asctime(now_parsed));
// or
time_t now;
msg trap_body;
strcpy(trap_body.time_stamp, ctime(&now));

asctime()이나 ctime()의 서식과는 다른 특정한 서식을 원한다면 strftime()이라는
함수도 있으니 참고하세요.