게시글
질문&답변
2021.08.15
selectionSort 함수구현 1시간걸림
int i = 1; 이 부분 초기화가 조금 아쉬운 것 같은데 이 코드 내에서 적용시킬 수 있는 다른 심플한 방법 없을까요?
- 1
- 3
- 230
질문&답변
2021.08.15
함수 구현 질문
생각해보니까 프로토타입의 함수자료형에 에스테리크를 넣는 이유는 포인터로 리턴해주기 때문에 붙인거였네요. 근데 포인터로 리턴해주더라도 프로토타입 함수 자료형에 에스테리크를 안붙여주면 어떻게 되나요? 안붙여도 잘 작동되길래요.(주의 : char* my_strcpy(char* destination, const char* source);에서 맨 앞 char'*' my_strcpy 를 말하는 중)
- 0
- 2
- 437
질문&답변
2021.08.14
5:15초에 strcat 구현질문
*(d + strlen(d)) 해야 합니다 그 방법 쓰려면 아마 d[strlen(d)] 하거나 strlen(d)을 따로 정해줘서 써야할걸요
- 0
- 2
- 234
질문&답변
2021.08.10
대댓글로 재질문 드렸는데 못보신거 같아서 한번 더 질문드립니다.
1. 2차원이상의 배열에서만 그렇게 생각하시면 되시고 강의중 ==의 의미는 printf로 %d 출력됬을 때 의 설명인 것 같네요. 그래서 a[0][0] 와는 != 라고 그림에 써 있죠. 2. 수학적으로 접근하시는데 중간에 우변에 포인터를 왜 하나 더 추가했나요? **arr은 a[0][0]을 뜻하고 *arr은 a[0]을 뜻합니다.
- 0
- 2
- 226
질문&답변
2021.08.10
마지막 예제에서 질문있습니다.
뒤의 강의를 듣지 않은 상태에서 제가 생각해봤을 땐 마지막에 설명이 좀 부족한 점이 있지만 일단 name은 포인터이고 aname 은 그냥 배열선언입니다. 그리고 결과값으로 유추해봤을 때 귀찮아서 포인터로 내용이 있는 배열선언을 해버려서 최적화를 한다면 그 안에 있는 원소들은 OS에 따라 무작위로 메모리 주소를 갖게 된다는 점이고 그에 반해 일반적인 배열선언을 해주면 연속적인 메모리주소를 갖게 된다는 걸 보여주고 싶은 예제가 아닌가 싶습니다. 그래서 결론적으론 무작위에 있는 배열을 찾아가게 되면 효율성이 떨어집니다. 위에있는 방식을 지양해라라는의미가 아닐까요
- 0
- 2
- 355
질문&답변
2021.08.10
16:54 질문 드립니다.
배열의 이름은 주소값을 저장 하는 공간이 없습니다. 단지 포인터'처럼' 사용할 수 있다고 저는 알고 있네요. arr, arr[0], arr[0][0] 모두 같은 주소입니다. 그 중에서 배열의 이름인 arr을 따로 포인터처럼 쓸 수 있게 c문법에서 구현해줬을 뿐이라고 알고있네요. 주의 할 점은 포인터'처럼' 쓸 수 있는거지 포인터의 기능인 indirection(간접접근)을 할 수 있게 arr[0]의 주소값을 저장해놓은 것이 아니라는 겁니다. 그 이유는 arr자체가 arr[0] 주소니까요.
- 1
- 3
- 272
질문&답변
2021.08.10
19:24 질문드립니다.
포인터니까 4*2=8이요
- 0
- 3
- 233
질문&답변
2021.08.09
포인터 관련해서 질문드리겠습니다.
전 강의가 아닌 이번강의에 해답이 나와있습니다. 동적할당 메모리를 자주 사용하게 되며 그러한 측면때문에 함수 프로그램에 input하면 배열로 받지 않고 포인터로 받아지게 c언어가 만들어졌다고 설명되어있습니다. 그리고 댓글에 대한 의문은 배열을 넣었을 때 그 자체가 배열이니까요. main에서 *ptr_a = &a; 하고 함수parameter에 인자로 들어간 후 그 프로그램에서 프로토타입은 *로 받지만 안에 내용에서 포인터한테 *를 쓰면서 코드하지 않습니다. 이미 주소기 때문에요
- 1
- 3
- 264
질문&답변
2021.08.05
재귀호출 관련해서 질문이 있습니다.
재귀함수를 만나면 바로 위로 올라가니까 1step 에서는 5 * 까지만 리턴해주는 것 같네요. (5 * (4 * (3 * (2 * (1 * 1))))) 라고 생각하시면 될 거에요. 직관적으로는 5*4*3*2*1*1 이라고 생각해도 연산되는 순서는 재귀니까 1부터 돌아오며 계산되는 것 같네요. 마지막 else에 1을 넣어주지 않고 0을 넣어보세요 그냥 리턴값으로 0을 보내주는게 아니라 0을 곱해줘서 0이라고 생각해야해요.
- 1
- 2
- 174
질문&답변
2021.08.01
for문을 while문으로 변환했는데 실패함.
혹시나 해서 while break 있는 곳에 row, col 를 초기화해주며 나가게 해봤는데 이제 정상적으로 되네요
- 0
- 1
- 353