이코드가 왜 실행시 닫혀버리는지 모르겟습니다 -_-;
터전
#includestdio.h
#includestdlib.h
int main()
{
int i;
char * str = (char *) malloc(sizeof(char)*i);
printf(입력하고자 하는 문자열의 갯수 :);
scanf(%d,&i);
printf(문자열 입력:);
scanf(%s,str);
printf(문자열 출력 : %s, str);
return 0;
}
실행후 문자열갯수 입력하고 문자열 입력을하면 닫혀버리네요 끙..
-
유키
아니면 scanf밑에서 malloc을 쓰시면 될겁니다.
malloc으로 메모리 할당했다고 해서
뒤에 숫자를 나중에 바꾼다고 계속해서 사이즈가 변하는게 아닙니다. -
촉촉한 초코칩
str에 메모리 할당할때 i만큼 할당하지 말고
상수를 지정하세요,,
i를 초기화 하지도 않고 메모리 할당을 해버렸네요 -
송아리
malloc은 동적으로 영역을 잡을 때, 사용되며 힙 메모리가 사용됩니다.
malloc을 사용할 때, 그 사이즈 만큼을 잡게 되는데 위에서와 같은 경우는 i값이 쓰레기 값이 들어가 있기 때문에 char(1byte - 32bit에서..) * i 만큼의 사이즈가 잡히는 거죠..;;
근데, 제가 알기론 컴파일러가 영역을 잡는 사이즈는 한계가 있다고 들었다는 거죠..;;
그 범위를 넘어섰을 때, 아마 이러한 현상이 발생되리라 생각됩니다. -
Sona
아 감사합니다.. malloc함수부분 이해가 잘안되네요 힙영역이면
컴파일과정후에 실행하면서 힙영역에 넣는거군요!; -
아리알찬
malloc보다 scanf가 뒤로 사용되었기 때문에.. 힙에 잡히는 사이즈는 몇 바이트가 될지...상상 불가..;;
(컴파일러가 그렇게 잡을 수 있을지도 의문..)
그로 인해 닫히는 게 아닐런지요,,? 결국 메모리 문제.. -
큰솔
fflush(stdin); 이걸 넣어봣는데도 안되요 그리고 님말씀대로라면 들어간게 출력이되야죠 출력도안됨
-
코이
그러니까 저문자열갯수 입력 저기서 입력하면서 버퍼가생깁니다 그걸 바로 밑에 문자열입력할때, 자동으로 들어가버리죠,
-
캔서
그러고 보니 i 에 값이 없네요. ㅎㅎ
i 값은 입력 받은 후에 메모리 할당해야겠네요. -
가림
해줄일은 다한게 아닌듯 출력이 진행이안되는데요 문자열출력줄부분이
-
링고
할 일을 다 했으니, 사라지는 것이 당연합니다.
키보드를 누를때까지 기다리게 하려면,
다음 헤어 파일 추가해주시고,
#include conio.h
맨 아래 return 0; 위에 다음과 같이 입력하세요.
getch();
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2676124 | 함수선언관련 질문이에요~...털썩..수정완료 (2) | 가지 | 2024-11-24 |
2676092 | C언어 책 (2) | 아서 | 2024-11-24 |
2676065 | 웹사이트 또는 메신저 등에서 원하는 텍스트를 검사하는방법?? (1) | 모든 | 2024-11-23 |
2676033 | 배열 기초연습중 발생하는 에러 ㅠㅜ... | Creative | 2024-11-23 |
2676005 | keybd_event 게임 제어 | 영글 | 2024-11-23 |
2675900 | 진짜기본적인질문 | 글길 | 2024-11-22 |
2675845 | 수정좀해주세요ㅠㅠㅠ | 해골 | 2024-11-21 |
2675797 | 병합 정렬 소스 코드 질문입니다. (2) | 도래솔 | 2024-11-21 |
2675771 | 큐의 활용이 정확히 어떻게 되죠?? | 해긴 | 2024-11-21 |
2675745 | 도서관리 프로그램 질문이요 | 도리도리 | 2024-11-20 |
2675717 | 2진수로 변환하는것! (3) | 동생몬 | 2024-11-20 |
2675599 | for문 짝수 출력하는 법 (5) | 널위해 | 2024-11-19 |
2675575 | Linux 게시판이 없어서.. | 첫삥 | 2024-11-19 |
2675545 | 구조체 이용할 때 함수에 자료 넘겨주는 것은 어떻게 해야 하나요? | 아연 | 2024-11-19 |
2675518 | 사각형 가로로 어떻게 반복해서 만드는지좀.. 내용 | 신당 | 2024-11-18 |
2675491 | !느낌표를 입력하는것은 어떻게합니까~~?ㅠㅠ (5) | 사지타리우스 | 2024-11-18 |
2675411 | 파일입출력으로 받아온 파일의 중복문자열을 제거한 뒤 파일출력 | 앨버트 | 2024-11-17 |
2675385 | 링크드리스트 주소록 질문드립니다. (1) | 겨루 | 2024-11-17 |
2675356 | 2진수를 10진수로 바꾸려고 하는데 막히네요.. | 풀잎 | 2024-11-17 |
2675297 | Prity 비트 발생기 | 한란 | 2024-11-16 |