#include <stdio.h>
#include <stdlib.h>
int main () {
char* hi = (char*)malloc(6*sizeof(char));
for (int i = 0; i < 6; i++) {
printf("hi[%d] = %c\n", i, '0'+i);
hi[i] = '0'+i;
}
printf("요소를 따로 출력하면: ");
for (int i = 0; i < 6; i++) {
printf("%c", hi[i]);
}
printf("\nString을 출력하면: %s\n", hi);
return 0;
}
코드
출력했을 때
혹시 String을 출력하면 뒤에 쓰레기값이 붙는 이유를 알 수 있을까요?
동적할당
좀 더 자세히 말씀해주실 수 있나요?? 동적할당하면 일반적인 배열이랑 출력시에 다른 점이 있나요?
문자열이 끝나는 위치를 알수없잖아
그럼 마지막에 null까지 넣어주면 되는건가요?
0
그럼 제가 예를들어 apple이라는 문자열을 만들고 싶다면
끝에 0까지 포함해 6*sizeof(char)만큼 할당해주면 되는건가요?
ㅇ
마지막값 0
스트링 끝에 할당한번 더하고 null넣어줬어야 했던것 같은데 가물가물하네
도와주셔서 감사합니다 형님들!!!!
정확히는 마지막값이 0 이 되야되는게 아니고 널캐릭터('\0')가 되야함. 이게 c스타일 문자열