memcpy가 내 프로그램에서 이상한 행동을합니다. 내 함수는 두 번 호출되므로 memcpy 행은 두 번 실행됩니다. 처음에는 문제가 없으며 두 번째 때는 gdb를 사용하여 해당 행에서 seg 오류가 발생합니다. 나는 왜 그것이 한 번 작동 할 것이지 두 번 이해할 수 없기 때문에 혼란 스럽다 ... 또한 내가 입력하는 두 개의 이름은 같은 길이이다. 이것은 내가 무엇을 가지고memcpy가 두 번째 시도에서 작동하지 않는 이유는 무엇입니까?
...
typedef struct _item_
{
char name[500];
}item;
int my_function(char *name)
{
item *myitem = malloc(sizeof(item));
char* temp = myitem->name;
strcpy(temp, name);
/* code here to write add item to a global structure */
return 0;
은}
테스트 코드...
int i;
i = my_function("test1");
.
.
.
i = my_function("test2");
그럼 내가 strcpy와이를 변경과 같은 문제가
발생
strcpy(temp, name);
모든 ID 이것이 작동하지 않는 이유는 무엇입니까?
'my_struct-> name'은 (는) –
을 가리 킵니다. char [500] – spatara
이것은 대답 할 수 없습니다. 주어진 정보 주어진 문제를 보여주는 컴파일 가능한, 최소한의 예제 게시 – interjay