분명 해설에서도 str은 16칸짜리 배열의 시작 주소를 저장하는 변수라 하였고 따라서 str은 지금 1000을 저장하고 있는 정수형 변수인데요,
왜 if문을 실행할 때 값을 str에 저장하고 갑자기 str이 왜 저 16칸짜리 배열이 되는지 모르겠습니다 ㅠ
또 malloc앞에 형변환 연산자 char이 붙었는데 뒤에 *가 같이 붙는 이유는 뭔가요? 그냥 문법인건가요? int형은 그냥 붙여도 되는데 char형만 다른가해서 여쭤봅니다 ㅠ
안녕하세요 길벗수험서 운영팀입니다.
해당 문제는 a라는 배열에 값을 넣어 놓고
들어간 데이터중 빈공백을 빼고 str에 저장을 하는문제입니다
malloc 함수가 메모리에서 char 자료형의 크기가 1byte이니 1*16을 하여 16Byte의 빈 영역을 찾아 할당을 하니 str이 16개의 기억장소를 갖는다 라고 표현을 한것입니다
char* str = (char*)malloc(sizeof(char) * len);
위의 식에서 (char*)의 경우 형변환을 한 주소값을 넘겨주기 위해 *를 붙인것입니다
행복한 하루되세요 :)
-
관리자2024-08-16 13:44:55
안녕하세요 길벗수험서 운영팀입니다.
해당 문제는 a라는 배열에 값을 넣어 놓고
들어간 데이터중 빈공백을 빼고 str에 저장을 하는문제입니다
malloc 함수가 메모리에서 char 자료형의 크기가 1byte이니 1*16을 하여 16Byte의 빈 영역을 찾아 할당을 하니 str이 16개의 기억장소를 갖는다 라고 표현을 한것입니다
char* str = (char*)malloc(sizeof(char) * len);
위의 식에서 (char*)의 경우 형변환을 한 주소값을 넘겨주기 위해 *를 붙인것입니다
행복한 하루되세요 :)