C/C++의 strncpy가 안전하지 않다고 생각하는 이유는 무엇입니까?

WBOY
풀어 주다: 2023-09-13 09:17:02
앞으로
1070명이 탐색했습니다.

C/C++의 strncpy가 안전하지 않다고 생각하는 이유는 무엇입니까?

strncpy() 함수는 소스에서 대상으로 지정된 수의 문자를 복사하는 데 사용됩니다.

다음은 strncpy()의 구문입니다

char *strncpy( char *destination, char *source, size_t n);
로그인 후 복사

여기서, Destination은 원본 문자열이 복사될 대상 배열에 대한 포인터이고, source는 복사할 문자열, n은 복사할 문자열입니다. . 복사할 최대 문자 수입니다.

strncpy() 함수는 소스 문자열의 처음 n자에 NULL 문자가 없으면 대상 문자열이 NULL로 끝나지 않기 때문에 안전하지 않습니다.

다음은 C++의 strncpy() 함수를 보여주는 프로그램입니다.

Example

온라인 데모

#include  #include  using namespace std; int main () { char source[20] = "This is a string"; char dest[20]; strncpy(dest, source, 4); cout << "The destination string is: " << dest; return 0; }
로그인 후 복사

Output

위 프로그램의 출력은 다음과 같습니다.

The destination string is: This
로그인 후 복사

이제 위 프로그램을 이해해 봅시다.

소스 문자열에는 "This is a string"이라는 데이터가 포함되어 있습니다. 그런 다음 strncpy()를 사용하여 처음 4자를 대상 문자열에 복사합니다. 그런 다음 대상 문자열의 내용을 인쇄합니다. 이를 보여주는 코드 조각은 아래와 같습니다.

rreee

위 내용은 C/C++의 strncpy가 안전하지 않다고 생각하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!