함수의 리턴형이
char* 즉 char포인터 형이야
근데 중간에 작업을 해야되서
함수안에서 배열형으로 배열[0]~배열[8] 까지 9개의 문자가 들어갔어
이걸 다시 char* 형으로 받으려는데
어떻게 받냐 ...
배열에 차곡차곡 즉 버퍼에 차곡차곡 있는걸 어떻게 char*형으로 한번에 문자열로 받음?
Buffer[0] = 'r'; 이런식으로 Buffer[8] 까지 char가 저장되어있어서
따로따로보면
r w x r w x r w x
라고 보면 된다.
이걸 char*형으로 한번에 문자열로 retrun 불가능??
배열 == 포인터
return Buffer
뭐라는거야 배열을 그냥 리턴하라고? 그럼 자동으로 포인터로 읽혀서 들어감? 경고뜨는데 거기다가 *안붙이고 그냥 Buffer 만 입력하면 쓰레기값으로 값자꾸 바뀌면서 뜨고 앞에 *붙이면 세그멘테이션 덤프 뜨고
함수안에서 출력함수로
Buffer 내용물 [0] 부터 [8] 까지 보면 정확하게 r w x r w x r w x 나오거든? 근데 retrun 프갤럼님 말대로 하면 쓰레기값으로 출력댐 아놔 이거 대체 뭐지
받는 걸 뭘로 받는지 문제인가?
ㅇㅇ 지금 안에서 Buffer 배열로는 조건에따라서 문자가 들어가는게 완료되었음 근데 return을 buffer 배열이름 그대로 하면 쓰레기값이 자꾸 바뀌면서 출력댐 실행할때마다 참고로 유닉스시스템C언어임 뭐 어차피 C언어라는건 똑같음 애초에 C언어수준문제라서 지금하는건
뭔가 해결할수있을 타이밍에 자꾸 segmentation fault 뜨네 이 시발 리눅스 개병신같은거 자꾸 코어덤프 뜨고 지랄 포인터만쓰면;; 리턴값도 배열로하고싶은데 이걸 정해버려가지고 리턴값은 바꾸지 못하게 과제내준교수가 시발
http://www.devpia.com/Maeul/Contents/Detail.aspx?BoardID=50&MaeulNo=20&no=869079&ref=869075
함수 내에서 선언되어 사용되는 배열의 경우 배열 자체가 스택 영역에 생성되고, 함수가 호출될 때 마다 해당 배열을 위한 메모리를 새로 생성하고 초기화 하는 작업을 하기 때문에 배열의 크기가 큰 경우에는 다른 방법을 사용해야 한다. _ 위키 책 배열
배열을 혹시 그냥 선언했니 변태야?
static은 괜히 있는게 아니란다
그럼 함수 2개만드는데 그 2개 있는 C파일에 함수내가 아닌 바깥쪽에 static으로 배열을 만들라는 말? 아님 함수안에서 static?
오 함수내에서 그냥배열이아니라 static 앞에 붙이니까 제대로 나오네 뭐야 이거 대체 원리가 뭐야 ㅠㅠ
static이 뭔지 궁금하면 공부좀....