하나의 소스를 여러 파일로 나누어서 컴파일.
글쓴이: i_wish_awk_sed_perl / 작성시간: 화, 2004/04/06 - 4:59오후
함수별로 파일에 넣었는데 컴파일 하니 에러가 나네요. 오브젝트 파일을 생성할때까지만 해도 문제 없는데 실행할때 세그먼트폴트가 납니다.
/* source.h */ void display_name(); void display_nick();
/* source.c */ #include <stdio.h> #include "source.h" int main(int argc, char *argv[]) { display_name(); display_nick(); return(0); }
/* sub1.c */ void display_name(void) { char *name; strcpy(name, "name"); printf("%s\n", name); }
/* sub2.c */ void display_nick(void) { char *nick; strcpy(nick, "nick"); printf("%s\n", nick); }
Forums:
strcpy 들의 대상이 메모리 할당이 하고 있습니다.
strcpy 들의 대상이 메모리 할당이 하고 있습니다.
---
http://coolengineer.com
:? 한파일일때는 정상이던가요? :D
:?
한파일일때는 정상이던가요? :D
Re: 하나의 소스를 여러 파일로 나누어서 컴파일.
char *name;
char *nick;
후에 저 두 포인터 변수를 위한 메모리 할당 부분이 없어서 난것 같습니다.
이 부분을 추가하면 일단 원하는 결과를 얻을수 있을것 같습니다.
malloc()함수를 사용한 메모리 할당에서 5를 곱하는 이유는
name과 nick의 글자수가 4이지만 마지막에 NULL값을 위한
공간이 필요하기 때문입니다.
----
use perl;
Keedi Kim
Re: 하나의 소스를 여러 파일로 나누어서 컴파일.
이렇게 안하면 메모리가 셀듯 하군요 =3=33
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
댓글 달기