을 겁니다 (아마 쓰레기가 될 것이다)를 가리키는 malloc을 사용하거나 포인터를 이미 존재하는 변수로 지정하십시오.
*l = 'c';
*(l+1) = 'g';
*(l+2) = '\0';
을하지만 지금은 다른 포인터에 복사 할 것인지,이 포인터는 다른 문자열을 가리키는되어야 또는 당신은 그것을 위해 메모리를 할당해야합니다
char word[3];
char *l;
l = word;
지금 당신은 할당 할 수 있습니다.
char *pointer_to_second;
char second[3];
pointer_to_second = second;
또는 3 선을 변경, 동적 메모리를 얻기 위해 원하는 경우 위의이 하나의 울부 짖는 소리가 될 : 당신이 원하는 무엇을 당신이 할 수있는 그 이후
char *pointer_to_second = malloc(sizeof(char) * 3);
:
strcpy(pointer_to_second, l);
그러나 C 컴파일러를 사용하는 경우 모든 변수를 처음부터 선언해야합니다. 그렇지 않으면 오류가 발생합니다. C++ 컴파일러를 사용한다면 걱정할 필요가 없습니다.
벡터에 속하지 않는 필드에 액세스하려고하면 세그먼트 오류가 발생합니다. 당신이 3 개 위치를 포인터 때문에,
printf("The value in position 3 of my pointer is %c\n", *(l + 3));
당신은 아마 오류가 발생합니다 당신은 4 일을 ACESS하려고 예를 들어, 당신이하려고하는 경우.
출처
2012-10-21 11:42:43
vmp
다른 질문이 생깁니 까? 내가 char * ch를 가지고 있다면; 이것은 자동으로 하나의 문자를 저장하기 위해 하나의 메모리 위치를 할당하겠습니까? – user1684072
아니요, 만약 당신이'char * ch'를 가지고 있다면, 그것은'char'에 대한 포인터에 공간을 할당하고 단위 화 된 상태로 남습니다. 그것은 당신이 캐릭터를 갖고 싶어하고'char ch'라고 선언하십시오. – md5