void asdf_mother(char ** t)
{
(*t)++;
}
void asdf(char ** t)
{
asdf_mother(&*t);
}
main()
{
char t[] = "DC IN";
asdf(&t);
}
아나, t가 "C IN"이 되야 되는데 "EC IN"이 되버리네.
님들아 도움좀요...
void asdf_mother(char ** t)
{
(*t)++;
}
void asdf(char ** t)
{
asdf_mother(&*t);
}
main()
{
char t[] = "DC IN";
asdf(&t);
}
아나, t가 "C IN"이 되야 되는데 "EC IN"이 되버리네.
님들아 도움좀요...
얘기했잖아 asdf(&t); 가 아니라 asdf(t);로 해야한다고. &를 빼라고
(*t)++은 t의 값을 증가시킨다는거임 - DCW
ㄴ 그래도 똑같아! "EC IN"이 됨.
존나 이해 안되면 저정도는 콘솔에 주소값 찍어가면서 직접 손으로 따져봐라 어차피 포인터 변수도 변수라 값저장이고 &하면 그거 주소 가져오라는거고 *하면 거기 찾아가라는거야
나처럼 자살 ㄱㄱ
&를 빼면 문법적으로 안맞을 가능성이 있고 t는 문법적으로 배열대표명이라고 존나 특이한 애라 t나 &t나 둘다 메모리에 "DC IN"으로 잡힌애 시작주소(&(t[0]) ok?)를 가지고 있거든 t가 기본적으로 char의 포인터니까 &를 붙이면 문법적으로 char **으로 해석이되서 컴파일도 잘되지만 값은 똑같아 그러니 asdf나 asdf_mother나 둘다 같은 값이 넘어간다고
여기까지 설명해줬으니까 따져보고 그래도 모르면 댓글달어