파일입출력 연결리스트 질문
모이
질문 제목 : 파일입출력 연결리스트 질문질문 내용 :
data라는 구조체가 존재하구요...제가 궁금한것은 저장한 파일을 다시 불러오는 구조에서 현재 메모리에 있는 연결리스트의 노드들을 모두 삭제하는 과정에서 이해가 잘 안되는데요...void load()
{
file *fp;
data *t;
data *p;
fp=fopen(data.dat,r);
t=head-next;
while(t!=tail)
{
p=t; //t의값을 p에다가 넣고tail이 나올때까지 t의 다음으로가며 p를 삭제하는건데
t=t-next; //p를 삭제해봤자...어차피 t의 값은 그대로인데 하나마나 아닌지요??
free(p); //p는 t의 값을 복사해 받을뿐 t의 값들은 계속 있는게 아닌가요?? 삭제하려면 t를 해야지 않나요??
}
head-next=tail;
while(1)
{
t=(data*)malloc(sizeof(data));
if(!fread(t, 40, 1, fp))
{
free(t);
break;
}
t-next=head-next;
head-next=t;
}
fclose(fp);
printf(data.dat를 불러옴\n);
}
-
Isolation
p와 t가 포인터 하는 곳은 똑같습니다. free(p)를 하면 p가 가르키는 곳이 NULL이 됩니다. p를 삭제해봤자 t도 그대로 인데 p가 가르키는 곳을 삭제 했으니 t가 가르키는 것은 뭐가 될까요? 메모리가 해제 됬으니 t와 p가 가르키는 곳이 NULL이 되는겁니다 ㅎ
복사 해서 p가 받은값은 그 주소 값이 됩니다. 값의 복사가 아니라 주소의 복사이므로 같은 주소를 가르키게 됩니다.
유사하게 call by reference와 call by value
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2700986 | 뭐가 잘못된건지좀 봐주세요. | 우주 | 2025-07-10 |
2700932 | 도와주세요 ㅠㅠ 모르겟어요 ㅠ | 유희 | 2025-07-09 |
2700900 | 반복문 도움요청..!!합니다. (1) | 두힘 | 2025-07-09 |
2700875 | (유효성검사)프로그램 짜는데 질문이 잇습니다. | 휑하니 | 2025-07-09 |
2700852 | 링크드 리스트 구현시 malloc 관련 에러 입니다. | 삐용삐용 | 2025-07-08 |
2700828 | 7/4 와 7/4.0 의 차이 | 발랄한그1녀 | 2025-07-08 |
2700771 | 아스키값 질문입니다. (+추가 임베디드 다른것도!) (3) | 찰스 | 2025-07-08 |
2700746 | 코드 오류 질문드립니다 | 차분 | 2025-07-07 |
2700721 | 배열 프로그래밍 입니다. (1) | 크나 | 2025-07-07 |
2700695 | 간단한 메모장 구현을 할려고 하는데요 (9) | 늘솜 | 2025-07-07 |
2700668 | c언어 질문입니다. 도와주세요~ (3) | 가자 | 2025-07-07 |
2700639 | 한글입력받아서 ㄱㄴㄷ순서대로출력하는법좀 | 두빛나래 | 2025-07-06 |
2700610 | 정말 기초적인 더하기,여백 문제 help | 무슬 | 2025-07-06 |
2700562 | 함수포인터에서요 (7) | 소심한여자 | 2025-07-06 |
2700530 | 전처리문 질문입니다. (1) | 아놀드 | 2025-07-05 |
2700510 | c언어를 어케하면 잘할수 있을까요.. | 연연두 | 2025-07-05 |
2700484 | 두 개가 차이가 뭔지 알려주세요...(소수 찾는 프로그램) (2) | 날위해 | 2025-07-05 |
2700426 | 인터넷 창 띄우는 질문이요 (1) | 정훈 | 2025-07-04 |
2700400 | 원넓이를 계산이요 ㅜㅜ | 천칭자리 | 2025-07-04 |
2700368 | if에 관해서 질문이요... | Orange | 2025-07-04 |