#include <stdio.h>
#include<stdlib.h>
int main() {
char *a = (char *) malloc (5);
a = "ddddd";
printf("%s", a);
return 0;
}
#include <stdio.h>
int main() {
char a[6];
a = "ddddd";
printf("%s", a);
return 0;
}
위에건 되는데 아래건 왜 안되나요 ㅠㅠ?
#include <stdio.h>
#include<stdlib.h>
int main() {
char *a = (char *) malloc (5);
a = "ddddd";
printf("%s", a);
return 0;
}
#include <stdio.h>
int main() {
char a[6];
a = "ddddd";
printf("%s", a);
return 0;
}
위에건 되는데 아래건 왜 안되나요 ㅠㅠ?
strcpy(a,"ddddd);
그거랑 scanf()랑 써야만 넣을수 있는건 아는데 이해가 안되서 ㅠ
둘다 코드 잘못됐다. a라는 배열에 혹은 포인터에 문자열을 직접 대입할 수가 없어, 다만 선언시에는 대입할 수 있다, 나머지는 strcpy()한수를 이용하던지 for문,while문을 이용하던지 해야된다.
위에건 그래도 돌아가는데 잘못된거야? 나도 for문을 통해서 하나씩 입력하는건 아는데 어쨋든 배열의 변수명만 적으면 주소상탠데 그럼 저런식으로 입력 가능할 것 같다고 생각해서 해봤는데 안되요.
위에건 메모리 할당한거 고대로 날라감 아래는 배열선언시 초기화할때만 문자열상수를 복사함
아 그러면 그냥 규칙인거야?
a가 동적할당된 주소를 가리키다가 a="ddddd"; 하는 순간 저 문자열상수가 저장된 주소를 가리키게 됨
고마워! 역시 프갤형들 덕에 오늘도 한수배워가네 ㅠㅠㅠ