C언어 고수님들 문제점좀 찾아주세요
프로그래밍 작성중에 오류가 뜨는데 뭐가문젠지도 모르겟어요ㅠㅠ 7번째 줄에서 문제 나오는거같은데 문제점좀 찾아주세요ㅠㅠ
.
글씨가 잘 안보이면 다시 찍어드릴게요 도와주세요ㅠㅠㅠㅠㅠ
int main(vodi)
{
//int amount;
int amount=0; //여기서 초기화를 안해서 에러 난듯 합니다.
int price = 1000;
printf("수량 : %d, 가격 : %d\n, amount, price);
amount= 100;
price = 2000;
printf("수량 : %d, 가격 : %d\n, amount, price);
return 0;
}
c는 선언을 하고 초기화로 변수에 값을 할당합니다.
첫번째 줄에서
//선언 => 아직 값이 초기화가 이루 어 지지 않았습니다.
// 즉 한번도 값이 amount 에 대입한적이 없습니다
int amout;
그런데
printf함수에서 출력하려고 하니 에러가 나는 것입니다.
int amount =100; //원하는 값을 할당을 하고 출력을 해보세요..
int amount;
위 변수를 선언했을때 변수 초기화를 하지않았네요.
초기화를 하지않으면 쓰레기값이 할당될수있습니다.
값을 넣어주지않은상태에서 amount값을 printf 로 출력하려고 하니 오류가 발생하는것입니다.
int price = 1000; 과 같이 변수값을 초기화하면 정상동작할것입니다.
오류 코드에 보면 "초기화되지 않은 'amount' 지역 변수를 사용했습니다"라고 나오고 있습니다.
코드에서 int amount; 이렇게만 만들고 초기값을 주지 않은 것으로 보입니다.
그렇다보니 오류가 나는 것으로 보입니다.
int amount = 0; 이렇게 수정해보고도 오류가 나는지 확인을 해보는 것이 좋을 것 같습니다.
프로그래밍 작성중에 오류가 뜨는데 뭐가문젠지도 모르겟어요ㅠㅠ 7번째 줄에서 문제 나오는거같은데 문제점좀 찾아주세요ㅠㅠ
-> 5번째 줄에 int amount=0;를 하면 될겁니다.
int형 변수는 null이 존재 할수가 없어요
무조껀 숫자여야 합니다.
변수에 대해서 다시한번 보면 좋을것 같네요
안녕하세요.
해당 오류는 결과 창에 나오는 것과 같이 amount 변수가 초기화 되어있지 않아서 입니다.
말 그대로 7번째 줄에 amount가 price 처럼 price=1000; 이렇게 초기화 되어있지 않기 때문에 나는 오류입니다.
다섯번째 줄에 int amount; 를 int amount = 0; 과 같이 초기화 해주시면 됩니다.
안녕하세요
아래 에러를 보면 초기화하지 않은 변수를 사용했다고 나오는데 맨 처음에
int amount;
라고 변수를 선언하기만 하고 초기화를 하지 않아서 나는 에러입니다.
아래 변수처럼 초기값을 입력해 주셔야 에러가 발생하지 않고 진행될 수 있을 거 같아요
다시 한번 해보시면 될 것 같습니다
화이팅하세요!
안녕하세요.
price만 초기화가 되어 있고 amount는 초기화가 되어 있지 않아서 발생하는 오류입니다.
int amount = 1; // 초기화 필요
int price = 1000;
모든 변수는 꼭 초기화가 필요합니다.
그리고 에러 발생시에 아래에 친절히 알려주니 그 부분도 잘 참조하세요.
참고바랍니다.
안녕하세요
아하 프로그래밍 전문가 입니다.
int 는 선언이며 int=(숫자)의 값까지 붙여야 초기화 라고 할수 있습니다.
int amount ; 이부분을 수정해서
int amount = 0; 으로 수정 하시기 바랍니다.
밑에 디버깅 오류도 확인이 가능합니다.
프로그램을 시작한 초보자시라면 밑에 디버깅 오류를 구글에 복사해서 검색하시면 금방 원인을 찾을 수 있을것 같습니다.
수고하세요!
안녕하세요
에러가 발생하면 오류 메세지를 분석하고
해당 라인에서 원인을 찾고 해결하시길 바랍니다.
초기화 되지 않은 메모리 amout
초기화 되지 않은 변수 amount
C언어 print 문에서 %구문을 활용하여 변수를 사용할때는
변수 앞에 &를 넣어주셔야 합니다.
printf( "수량: %d , 가격 : %d\n", &amount, &price);
로 변경하세요~!
말 그대로 amount 변수가 초기화 되지 않아 발생한 문제입니다. 즉 , amount 변수를 선언만 하게 되면 해당 값에는 쓰레기값이 들어가 있는데, 그 값을 사용하려고 했기 때문에 컴파일러에서 오류를 발생시킨것입니다.
선언하실때 아래와 같이 선언해주시면 됩니다.
int amount = 0;
변수 선언 시 초기화하는 습관을 들이시길 바랍니다. 도움이 되셨길 바랍니다.
안녕하세요.
에러내용은 초기화되지 않은 변수를 printf로 찍으려고 해서 발생하는 문제입니다.
int amount; -- > int amount = 0; 로 바꿔주시거나
printf 문장을 amount = 100; 다음으로 옮겨주시면 문제가 해결되실 겁니다.
이제 처음 공부하시는것 같은데 열공하세요
int amount; // 변수 초기화가 안되어 있네요
int amount = 0;
이렇게 변경해 주시면 됩니다.
초기화 되지 않은 변수를 printf 에서 사용하려다 보니 발생한 오류 입니다.
앞으로도 변수에 대한 초기화 처리는 잘 익혀두셔야 정신건강에 도움이 되실껍니다.
지역변수의 초기화는 저렇게 오류라도 보여주지만,
전역변수나 포인터 같은 경우는 segment fault 나 알 수 없는 오류를 뱉어내기에 잘 습관화 하셔야 합니다.
밑줄은 price에 있어서 문제 부분이 price 쪽에 있는 것으로 착각을 하게 하는 것 같습니다.
오류 목록에 보시면 amount가 초기화되지 않았다고 나와 있습니다.
#include <stdio.h> int main( void) { int amount; // 초기화가 되지 않았습니다! int price = 1000; printf("수량 : %d, 가격: %d\n", amount, price); amount = 100; price = 2000; printf("수량 : %d, 가격: %d\n", amount, price); return 0; }
따라서 amount 를 출력하기 전에 초기화를 해보세요.컴파일러, 혹은 같은 컴파일러라고 하더라도 컴파일 옵션에에 따라서는 컴파일이 가능할 수도 있습니다.
GCC에서는 아래와 같이 쓰레기 값이라고 불리는 임의의 값이 출력됩니다.
int amount = 숫자; 로 해주세요
0으로 초기화를 하든 원하시는 숫자를 넣으시던!
Price는 초기값이 잘 들어가서 출력이 잘 될텐데
Amout는 초기값이 없는데 printf로 출력을 하려고 시도하니까
빌드 error가 나면서 실행이 안됩니다.
에러 설명에도 동일하게 초기화 안된 amount 변수를 사용했다고 되어있구요
선언과 동시에 초기화 예)int a=0; 를 해애지 면수 a의 주소(adress)에 0이 저장됩니다 0이 저장되기전(초기화전)에는 변수a자리에 쓰레기값 즉 예측할수 없는 값이 들어있습니다. 그러므로 변수 작성시 초기화는 필수 사항입니다. 교재에서 초기화하지 않은 부분은 선언과 동시에 초기화하지 않은 것이지 int x; x=50;이라던가 scanf로 변수의 초기화를 할 수 있습니다. 그러니까 변수는 초기화하기전에 연산이 불가능 합니다
배우시는 입장에서 디버깅 할때 나오는 오류를 잘 읽어 보시면 답이 나와요~
오류에 초기화하지 않은 메모리 amount라고 나오네요~
그럼 뭐가 문제일까요??
amount라는 int변수를 선언은 했지만 초기화를 하지 않았으니 나오는 오류겠죠??
변수 선언 후 초기화하는법은 아실테니 코멘트는 여기까지^^
안녕하세요. 아하(a-ha) 프로그래밍 지식 답변자 입니다.
amount 의 값을 0으로 초기화 시켜보고 시도 해보시기 바랍니다.
#include <stdio.h> int main() { int amount = 0; int price = 1000; printf("수량 : %d, 가격 : %d\n", amount, price); amount = 100; price = 2000; printf("수량 : %d, 가격 : %d\n", amount, price); return 0; }답변이 도움이 됐으면 합니다. 좋은 하루 되세요!
7번째 line에 amount라는변수를 출력하려하였으나,
해당 변수를 출력하기이전에 해당 변수를 선언만 해놓고 값을 할당하지않으셨네요. 해당 printf문에서 amount를 출력하지않든가,
값을 할당한후 출력하세요.
참고로 변수는 선언시 초기값을 할당하는 습관을 갖는 것이 좋습니다.
위의 코드 중에서 int amount; 이 부분을 수정하면 제대로 작동할 것으로 보입니다.
오류를 보면 초기화 하지 않은 메모리를 이용하기 때문인 것으로 보이므로 변수의 값을 0으로 초기화하여 사용하신다면 잘 작동할 것으로 생각됩니다.
오류가 나는 부분만 수정하자면
int amount = 0;
int price = 1000;
이렇게 하셔야할 것으로 보입니다.
- int amount;
이 부분이 잘못 되었습니다.
int amount = 0;초기화 값을 넣어줘야 합니다.
초기화 값을 넣어주지 않고, 출력 하려 하면 null point로 나오게 되어서 에러가 뜨게 됩니다. 꼭 변수를 만들면 반드시 처음 부터 초기화 값을 지정 해줘야 합니다.
좀 더 기초 문법을 복습해주세요.