null값의 의미에 대해서 ...
글쓴이: min2to / 작성시간: 토, 2006/02/25 - 1:28오전
C언어 에서 null값의 정확한 계념은 뭔가여?...
쓰레기값.. 0 값 이라고 알고 있는데
쓰이는 방식에 따라 변하는거 같아서여(초보초보)
예를들어
#include <stdlib.h> #include <stdio.h> main() { float f1,f2; FILE *fp; if ( (fp= fopen("input.txt", "r")) = NULL) { fprintf(stderr, "Error opening file"); exit(1); } fscanf(fp, "%f %f", &f1, &f2); printf ("the %f, %f ,f1,f2); fclose(fp); return(0); }
이런 예제가 있는데 저위에 NULL선언이 무슨뜻인지 모르겟어서여
파일의 값이 0이면 에러문을 보여주는건지.. (아님 빈파일 일때에 보여주는건지)
Forums:
NULL은 (void *)0이라고 보시면 되고요.아무 곳도 가리키지
NULL은 (void *)0이라고 보시면 되고요.
아무 곳도 가리키지 않는 포인터를 의미합니다.
( 실제론 메모리 0번지를 가리키긴 하지만 -_-; )
위의 사항은 man fopen 하시면 된다는.
[code:1](fp= fopen("input.t
fopen함수는 파일 열기에 성공하면 파일 포인터를, 실패하면 NULL을 반납하지요. 그래서
만약 파일 열기에 실패하면 에러 메시지를 내고 종료하도록 해 놓은 거에요.
추가로...
추가로... 초보 분들이 많이 실수하시는 건데 저 위의 코드에서 = NULL이 아니고 ==NULL로 해야 합니다. =는 assignment고 ==는 equality가 되죠.
블로그: http://turtleforward.blogspot.com
컴파일러 간의 차이 때문이거나코드의 흐름 상 명확한 표현을 위하여 쓰
컴파일러 간의 차이 때문이거나
코드의 흐름 상 명확한 표현을 위하여 쓰곤 하는데
혼자짠다면 그냥 막 써도 됩니다. :lol:
[quote="Kroisse"][code:1](fp= fopen&
3번정도 읽어봤는데여 (머리가 나쁜거 같음 완전히)
근데 굳이 NULL 값을 넣어주는지 모르겟네여..
프로그램 짤때 무조건 성공되게 짤텐데 바보아닌 이상..
(제 생각 ..초보초보)
왜 넣어주는 지.. 그걸 알고 싶어여
모르는건 물어보라구 엄마 아빠가 알려주셧습니다
고수님,선배님들 도와주십쇼 독학하는 학생입니다
사용자 입장에서 짜는거죠..
지금은 레포트이신지 모르겠지만..
나중에 취직을 하셔서 개발쪽에 일하시게 된다면..
레포트가 아닌 일반 사용자들이 사용하는 프로그램을 개발하시지 않을까요?
미리 부터 예외처리 습관을 가지시는건 좋다고 생각합니다..^^
--------------------------------
스물셋.. 독립.. 열심히 살아보자!!
--------------------------------
--------------------------------
스물셋.. 독립.. 열심히 살아보자!!
--------------------------------
열기가 실패하는 이유는 여럿있지만 가장 흔한걸로는1. 파일이 없는
열기가 실패하는 이유는 여럿있지만 가장 흔한걸로는
1. 파일이 없는 경우
2. 파일이 있지만 권한이 없어서 열지 못하는 경우
3. 기타 다른 이유로 열수 없는 경우
등이 있지요.
[quote="Anonymous"]열기가 실패하는 이유는 여럿있지만 가장
저 죄송한데여
제가 (초보)라 그런데
그럼 원칙적으러 써줘야 정석인가여?
확실하다 싶으면 않써줘도 아무탈은 않나져?
(쓰기가 번거롭게 느껴져서여 저의 눈 엔.....)
모르는건 물어보라구 엄마 아빠가 알려주셧습니다
고수님,선배님들 도와주십쇼 독학하는 학생입니다
파일이 있다는 확/실/한 보장이 있다면안써도 되겠죠.그런데
파일이 있다는 확/실/한 보장이 있다면
안써도 되겠죠.
그런데 그렇게 보장할 수 있는 경우가 정말 몇 안됩니다.
그런 의미에서 저런 에러 처리는 매우 중요하죠.
프로그램이 어떤데서는 되고 어떤데서는 안되는
이런 되먹지 않은걸 만드시고 싶으신건 아니겠지요?
[quote="Anonymous"]파일이 있다는 확/실/한 보장이 있다면
그렇군여 .. 제가 내공이 부족하다 보니 눈에 보이는것만 보았네여
좋은 휴일 보내세여~
모르는건 물어보라구 엄마 아빠가 알려주셧습니다
고수님,선배님들 도와주십쇼 독학하는 학생입니다
왜 하필 NULL값을 대입해주는걸까여?
대입 해주는걸까여?..
0값이라? 그런건가...
Re: 왜 하필 NULL값을 대입해주는걸까여?
위 중간에도 써있지만,
대입이 아니라 "== NULL" 의 오타입니다.
대입 아닙니다.... 비교입니다.
--
Passion is like genius; a miracle.
[quote="min2to"][quote="Anonymous"]열기가 실
세상엔 변태스러운 user들이 많습니다. ㅎㅎ
어떻게 하면 고장낼까를 고민하는...
--
Passion is like genius; a miracle.
[quote="pool007"][quote="min2to"][quote=
뜨끔.... :oops:
봄들판에서다
[url=http://www.cinsk.org/cfaqs/html/nod
C FAQ Null pointers에 대해 한 번 읽어보기 바랍니다.
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
[quote="min2to"]저 죄송한데여 제가 (초보)라 그런데
테스트 코드 정도를 짠다면... 확실히 파일이 존재 할거고.
만약 파일 없어 코어 나면 소스 대충 보고 파일이 있는지 확인해 보고는 다시 수정하거나 파일을 만들면 되지만.
제대로된 프로그램을 짠다고 하면 당연히 넣어야지요.
항상 만약의 경우를 생각해서 발생 할 수 있을것 같은 모든 에러에 대한 대비를 해 놓으셔야 합니다.
-------------------------------------------
피바다=피받아
http://blood.egloos.com
[一笑一少 一怒一老]
[笑門萬福來]
[code:1]if(fp= fopen("input
아무래도 저만 눈치 챈것 같습니다. :)
딴지 아닙니다.
언제나 시작
only2sea님이 지적하신걸 말씀하시나요? 8)
only2sea님이 지적하신걸 말씀하시나요? 8)
C++, 그리고 C++....
죽어도 C++
괄호...
아래 코드 오히려 여는 괄호 하나가 부족한데요. 첨에 있던 코드는 괄호 개수는 맞는군요. 8)
블로그: http://turtleforward.blogspot.com
^^;
흠 일단 될수 있으면 보기 쉬운 코드로 짜시는게 좋습니다.
그리고 상수롤 앞에 하시는게 컴파일시 오류가 떠서 편합니다.
NULL체크를 하는 이유는 오류처리 또는 예외처리입니다.
c++, java, C# 같은경우는 try catch로 해결할수 있지만 c 같은 경우는 저렇게 일일히 확인을 해서 처리
를 많이 합니다.
될수 있으면 코드는 간소하게 짜시는게 좋습니다.
그럼
상수를 앞에 쓰는게
상수를 앞에 쓰는게 컴파일시 오류가 뜬다는게..
어떤 의미인지..구체적인 설명을 부탁드려도 될까요?..
제 습관은..
변수 == 상수 ..
거의 이렇게 체크하고 있는데, 문제가 있으면..컴파일러에서 오류를 뱉어내기는 하거든요..
상수에 대입할때 에러
변수 == 상수
상수 == 변수
일단은 동일한 기능을 하는데 잘못해서 == 를 = 로 썻을때 컴파일시 오류..
댓글 달기