나는 내가 원하는 값을 가리 키도록 포인터의 포인터를 증가시키는 방법을 알아 내려고하고있다. 이것은 본질적으로 cstrings에 대한 포인터 배열이며 xx 포인터를 가리 키도록 포인터를 증가시키고 자합니다. 내 현재 응용 프로그램의 주장을 위해 나는 (포인터가 char **pointer
로 정의된다)포인터의 포인터 증가시키기
*pointer++;
*pointer++;
*pointer++;
*pointer++;
*pointer++;
내가 할 수있는 다섯 번째 포인터를 가리 키도록하려는 경우와 나는 지금 내가 원하는 *pointer[0]
에 다섯 번째 포인터를 설정합니다. 나는 이것을 희망적으로 1 개의 라이너로 정리하는 방법을 찾고 있습니다. 이 문제를 해결하기 위해 여러 가지 방법을 시도했지만 아직 해결 방법을 찾지 못했습니다. 마지막 시도는
*pointer += (sizeof(pointer) * 5);
이었지만 작동하지 않았습니다. 나는 만약 내가 시스템 (4 바이트)에 포인터의 크기를 얻었고 포인터의 수를 곱하면 그것을 스윕하는 것과 똑같이 할 것이라고 생각했다. *pointer++
호출. 포인터를 끝내기 전까지 포인터를 증가시킨 후 다음을 사용하여 나머지 cstring을 printf합니다.
while(*pointer[0])
{
printf("data: %s\n", *pointer);
pointer++;
}
은 전반적으로 나는 1 라이너로 5 *pointer++;
전화를 돌려 도움이 필요합니다. 컴파일러는 뾰족한 물체의 크기를 파악하고 :
pointer += 5;
이 C에서 잘, 그것은 포인터 연산라고 : 당신이 5
하여 포인터를 증가하려면
'포인터 ++;'는 당신이 생각하는대로하지 않습니다. 더더욱, 당신은 sizeof (* p)를 수동으로 곱할 필요가 없다; 포인터 산술 및 컴파일러가 당신을 위해 작동합니다. –
''char * ptr = pointer + 5;''와''ptr''을 조작 할 수 있습니까? – fge