포인터 p가 있을 때 p=&x 이런식으로 먼저 주소를 지정하지않고 p를 쓰면 p가 아무 랜덤한 주소를 가리키고 있어서 쓰면 위험하댔는데 struct msg {char *p} x; strcpy(x.p , "y"); 이런식으로 쓰는건 왜 되는거임?
안됌
그렇군
동적 할당을 해주고 복사해야 됌
char p[30]; 같이 배열로 선언하면 상관없음??,
ㅇㅇ 정적 할당을 해주거나 동적 할당 해주고 복사해야함
동적할당은 머임
니가 코드 편집기에서 Char str[30] 같이 미리 적어주는게 정적할당이고 니가 프로그램을 실행시키고나서 공간을 할당해주는게 동적 할당임
뭘 하고 싶은건데
걍 배우는중
포인터 자체는 특정 메모리 공간 좌표를 가리키기 위해서 쓰는거고 메모리 할당은 특정 데이터 공간을 조작하기 위해 부수적으로 나오는 얘기라 본문 코드는 이상한게 맞는데 동적할당은 필수적인 얘기는 아님.
x.p는 초기화가 안되어있음 x.p 값이 0이거나 쓰레기값임 여기다 복사하려고??
x.p값은 0이거나 쓰레기값인데 이 주소에다가 복사하면 0의 주소에다 복사하고 쓰레기값의 주소에다 복사한다는 뜻임
여기다(여기라는 장소에다가)
포인타는 근본적으로 해킹에 가까운 연산이라 위험함. 그게 다임. 포인터는 레퍼런스의 개념을 이해하기 위한 용도일 뿐임. C에서 참조를 구현하기 위한 표현임. 이게.다야.
해킹이랑 무슨 상관임?? 교수가 c 배우면 해킹 가능하다 어쩌고하던데 이거였나
ㄴ 해킹이라는건 시스템의 정상적인 사용법이 아니라는 소리임