다음 C 코드를 컴파일하려고하면 버스 오류가 발생합니다. 필자는 memcpy를 호출하는 방식과 관련이 있다고 추측합니다. 그러나 알아낼 수는 없습니다. 도움이 될 것입니다. 과제 후, NOT하여 할당 된 메모리에버스 오류 : 10. C 코드, malloc 예
다음p
점 리터럴 문자열
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char *p = (char*)malloc(sizeof(char)*11);
// Assign some value to p
p = "hello";
char *name = (char*)malloc(sizeof(char)*11);
// Assign some value to name
name = "Bye";
memcpy (p,name,sizeof(char)*10); // Problem begins here
return 0;
}
기타 참고 사항 : [malloc의 반환 값을 캐스트하지 마십시오] (http://stackoverflow.com/questions/605845/). 'strncpy'와 비슷한 함수가 그 목적을 위해 존재할 때 왜 * 문자열 *을 복사하는데'memcpy'를 사용하고 있습니까? – DCoder