char *name[NUM][CHAR_MAX];
char *m_name[CHAR_MAX];
scanf("%s", m_name);
int i;
for(i = 0; i < NUM; i++){
if(m_name == name[i]){
name[i] = m_name;
salary[i] = m_salary;
} else {
printf(ERROR_MSG_2);
}
이런 코드가 잇서요..
굵게 표시된 부분에서 assignment to expression with array type 에러가 뜨는데
뭐 어떻게 바꿔줘야 저게 동작하나요..
쉬불쟝의 과제가 포인터는 배우지도 않았는데 써먹어야되고 구글검색까지 멀리멀리 해서 여기까지 왔는데.. 재발 도와주새요 ㅠㅠ
호곡;; 그럼 방법이 for문 돌려서 직접 우겨넣는거 밖에없나여?
m_name 이 문자열인것 같은데 strcmp ( name[i], m_name) == 0 을 써보는건 어떠나여
저 코드를 교수님이 주신거 아니죠? 님이 짠거죠? 코드 전체적으로 잘못 된게 많은데
일단 char *m_name[CHAR_MAX]; 이부분이 잘못됐음 scanf로 입력받고싶다면 char m_name[CHAR_MAX];으로 선언하셈 그외에도 고쳐야할건
char *name[NUM][CHAR_MAX]; 이부분인데 님의 생각은 NUM 갯수만큼 이름 문자열을 가지고있는 배열을 생각한거같은데 지금 님껀 NUM * CHAR_MAX 갯수만큼 문자열을 받는 구조임
NUM갯수만큼 이름을 받고싶으면 char name[NUM][CHAR_MAX];로 선언후 scanf(%s , name[i]) 일케 입력받으셈..
그리고 if(m_name == name[i]) 여기서 문자열을 서로 같은지 다른지 비교하는거같은데 저 코드는 주소값이 같을때이지 문자열이 같을때라고 생각한다면 위험함(나중에 상수문자열 배우면 알게될거)... 즉 님 말대로 포인터를 배우지 않는 상태이기때문에 strcmp라는 문자열 비교함수를 사용해서 하는게 좋음..
또 if문 다음에 name[i] = m_name; salary[i] = m_salary; 이런 코드가 있는데 이것도 문제.. strcpy (문자열복사 함수)를 이용하셈