C++에서 배열의 마지막 요소에 액세스하려고합니다 (특히 정수를 문자 배열로 변환 한 다음 마지막 숫자에 액세스하려고합니다). 여기에 지금까지 가지고 올 한 내용은 다음과 같습니다배열의 마지막 요소
int number_to_convert = 1234;
char * num_string;
sprintf(num_string, "%d", number_to_convert);
printf("Number: %d Sizeof num_string: %d Sizeof *num_string: %d Sizeof num_string[0]: %d\n", number_to_convert, sizeof(num_string), sizeof(*num_string), sizeof(num_string[0]));
내가 마지막 요소에 액세스하기 위해 여러 가지 조합을 시도,이 정보를 사용하여 :
num_string[sizeof(number_to_convert)/sizeof(*number_to_convert)-1];
num_string[sizeof(number_to_convert)-sizeof(char)]
어쩌면 마지막 자리를 얻을 수있는 더 좋은 방법이를, 하지만 이것이 제가 찾을 수있는 최선의 방법입니다. 나는 마지막 문자 (null 문자가 아님)를 원한다.
가하셨습니까 ** num_string [sizeof 연산자 (num_string) -sizeof (문자)] ** ** number_to_convert [sizeof (number_to_convert) -sizeof (char)] 대신 ** – Arun
num_string이 예제에서 메모리가 할당되지 않았으므로 위험합니다. sprintf가 실제로 기록 된 총 문자 수를 줄 때도 계속 반환해야합니다. 또한 sprintf가 아닌 snprintf를 사용하도록 미리 정의되어 있습니다 – Pierre
해당 코드가 컴파일 되나요? int 변수를 참조 해제하려고합니다 (number_to_convert). – guardianpt