0
여러분!C++ 문자열 역방향 오류
간단한 char * 문자열을 쓰고 있습니다. 그리고 입력 배열을 포인터로 초기화 할 때 라인 src[k] = src[n - k];
에 쓰기 액세스 오류가 있습니다. char * input = "string". 그리고 고정되어 있습니다. char input [] = "string"; 그것은 나를 위해 매우 흥미 롭습니다, 왜 그것이 포인터와 함께 작동하지 않습니다. 고마워요!
void reverse(char* src) {
if (src == NULL) {
return;
}
size_t n = strlen(src) - 1;
char swap;
for (int k = 0; k <= n/2; k++) {
swap = src[k];
src[k] = src[n - k];
src[n - k] = swap;
}
src[n + 1] = '\0';
}
'char * input = "string";'(* 오류 * 또는 적어도 * 경고 * 형태로) 진단하지 않고 C++ 11에서는 컴파일되지 않습니다. – Nawaz
@Nawaz, 나는 그것이 오류를 줄 것이라고 생각. – chris
@chris - 오류를 생성하는 데 필요한 유일한 것 (컴파일러가 코드 컴파일을 거부 함)은 # 오류 지시어입니다. 일반적으로 컴파일러는 "진단"을 실행 한 후 컴파일을 계속하고 원하는 의미로 코드를 제공해야합니다. 이것이 컴파일러에 특화된 확장 기능입니다. –