[C Programming] malloc과 fgets의 사용
글쓴이: kkt5116 / 작성시간: 금, 2010/11/05 - 12:23오후
#include <stdlib.h> #include <string.h> #include <stdio.h> void memoryAlloc (int a); int main(int argc, char* argv[]) { int choice; fputs("Please enter the maximum length of string: ",stdout); scanf("%d",&choice); memoryAlloc(choice); return 0; } void memoryAlloc (int a){ char* arr; arr = (char*)malloc( a * sizeof(char)); if (arr == NULL){ fputs("Failed to allocate memory!!!",stdout); exit(1); } fputs("Please enter strings: ",stdout); fgets(arr,sizeof(arr),stdin); // scanf("%s",arr); printf("Entered strings: %s\n",arr); fflush(stdin); free(arr); }
안녕하세요. 이제 c프로그램에 막 입문한 노땅새내기에요 ㅡㅡㅋ
다름이 아니라 주석 처리한 부분에 문제가 생겨서 그런데요.
fgets()를 쓰면 입력 자체가 안되더라고요.
근데 scanf()를 쓰면 되구요. 왜 그런거죠?;;
Forums:
음 ..
sizeof 는 datatype 의 크기를 리턴하고, 배열에 대해서만 배열의 크기를 리턴합니다.
sizeof(arr) 라면 결국 char pointer 의 크기만큼만 리턴하게 되겠죠.
http://en.wikipedia.org/wiki/Sizeof
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
아 그렇군요!!!
아 그렇군요!!! 감사합니다
댓글 달기