문자열 메모리 및 할당
, 구 진모님이 작성문자열 입력 방법 중
1. 배열 선언 후 초기화.
2. 포인터메모리할당 후 strcpy를 통한 복붙
두가지 방법을 배웠습니다.
그럼 포인터 메모리 할당 후 문자열을 선언하면 되는거 같아서 했더니, 결과는 나오지만 실행 오류가 있더군요.
이유를 알 수 있을까요?
ex)
char* s1 = malloc(sizeof(char)*30);
s1 = "The Little Prince";
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char* s1 = malloc(sizeof(char) * 30);
s1 = "The Little Prince";
for (int i = 0; i < strlen(s1); i++)
{
printf("%c\n", s1[i]);
}
free(s1);
return 0;
}
Re: 문자열 메모리 및 할당
, 도장_ 관리자님이 작성UNIT 42.1에서 설명하지만
문자열은 대입이 아니라 strcpy 함수로 메모리를 복사해야 합니다.
책 전체를 순차적으로 학습하고, 전체를 차근차근 학습하면서 끝까지 봐야 합니다.
그래야만 전체적인 이해를 얻을 수 있습니다.