나는 정확히 가 어떻게 작동하는지 잘 모르겠다. 내가 문자열로 임명 값이 하나 개의 문자보다 큰 아직이 잘 컴파일 보이기 때문에 C 문자열 mallocing
#include <stdio.h>
#include <stdlib.h>
int main() {
char * string = (char*) malloc(sizeof(char));
string = "abc";
int * test = (int*) malloc(1 * sizeof(int));
*(test) = 5;
*(test + 1) = 6;
}
나는 출력 오류이 예상. '문자열'지금
을 저장됩니다 :
나는 몇 가지 질문이? 내가 할당 한 한 공간 후에 힙의 메모리 공간에 있습니까?왜 char을 사용하면 포인터를 통해서만 int를 직접 지정할 수 있습니까?
은 정말 내가 여기에 '문자열'지금 저장됩니다
[malloc의 반환 값을 캐스팅하는 이유는 무엇입니까?] (http://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc)? – PaulMcKenzie
@PaulMcKenzie 나는 MIT 과정을 따르고 있는데 ppt 예제가 이것을 사용했지만 추가 정보로 바보가 된 것 같다. – DarkInc
'* (test + 1) = 6;'경계 밖에서 쓰다 –