memmove

    0

    3답변

    두 개의 정수와 문자열을 버퍼에 복사하고 버퍼 요소를 인쇄하려고합니다. 세 번째 printf 문에 대한 seg 오류가 발생합니다. id = 102; len = 3; str = "working"; memmove(buffer,&message_id,sizeof(id)); memmove(buffer+(sizeof(id)),&le

    1

    2답변

    가능한 중복 : memcpy vs memmove memmove 실제로 "이동"메모리 청크를합니까? 그렇다면 메모리가 0으로 유지됩니까? 아니면 memcpy과 같은 것입니까? 맨 페이지를보고 있는데, 내 가정이 맞다고 생각하지 않습니다. memmove를 사용하여 메모리 덩어리를 이동하려는 경우 이동을 수행 한 메모리 덩어리를 수동으로 제로화해야합니까?

    2

    4답변

    CLRS 2 장에서는 삽입 정렬의 최악의 실행 시간이 O(n lg n)으로 개선되는지 여부를 묻는 연습이 있습니다. 나는 this question을보고 그것을 할 수 없다는 것을 알았습니다. 최악의 경우의 복잡성을 개선 할 수는 없지만 memmove을 사용하면 배열 요소를 개별적으로 이동하는 것보다 실제 실행 시간이 더 좋아 지나요? 개별적으로 움직이는 요

    6

    2답변

    memmove에 대해 읽는 동안 나는 처리 할 수 ​​있다고 읽었습니다. 메모리 오버랩 그러나 두 개의 문자열 사이에서 어떻게 memorory overlap이 발생할 수 있는지, 어떻게이 함수가 메모리 블록을 올바르게 복사 할 수 있는지 알 수 없습니다.

    2

    1답변

    writeablebitmap이 있습니다. 내용을 왼쪽으로 1 픽셀 스크롤하고 맨 오른쪽 열에 새 pixelrow를 채우고 싶습니다. C++에서는 전체 버퍼 1 픽셀을 왼쪽에 memmove하고 각 라인의 마지막 픽셀을 덮어 씁니다. 그러나 memmove가 없으므로 C#에서 그렇게하는 가장 좋은 방법은 무엇인지 모르겠습니다.

    0

    2답변

    n 바이트의 버퍼가 있지만 바이트 3의 sizeof (something) 바이트 만 읽으면됩니다. 즉, 버퍼에서 1 바이트와 2 바이트를 읽지 않으려는 것입니다. 예를 들어 ... 일부 버퍼의 경우 바이트 1 = 'a', 바이트 2 = 'b', 바이트 3 = uint64_t 변수입니다. 내가 뭘 원하는 1. set begin to byte 3 2. rea

    0

    1답변

    저는 memmove가 어떻게 작동하는지 이해하려고합니다. 나는이 방식으로 메모리에 데이터가있는 예제를 사용하고있다. Start at 0 First Memory Block(A) of size 10 Hence A->(0,10) where 0 being where it starts and 10 it's length. Thus B-> (10,20)

    0

    2답변

    문자열의 일부 순서를 뒤집는 함수를 만들려고합니다. 포인터를 사용하는 것에 익숙하지 않고 문자열의 문자 위치를 액세스하여 부분 문자열을 복사 할 수 있지만 같은 위치에 다시 넣을 수는 없습니다 ... 되돌려 진 부분 문자열을 원래 위치로 다시 복사합니다. 프로그램 수신 신호 SIGSEGV, 세그먼트 오류. 에서 0x00007ffff7b5dc66 ??() f

    1

    2답변

    그것은 여기 내 이전 게시물 그러나 문제처럼 보인다 다른 ..이 문제에 대한 C 구조입니다 - 값이 구조에 제공되는 typedef struct ip_esp_private { /* keep track of things privately */ u_int32_t type; u_int32_t ivlen; u_int32_t icvlen; u_int

    1

    3답변

    이것은 좋은 장소 인 것 같습니다. 내 질문은 memmove()의 구현에서 어떤 값 (또는 몇 바이트)을 움직이는 것입니까? int main() { char str[] = "memmove can be very useful......"; memmove (str+15,str+20,/*?*/); puts (str); return 0; } 다음 예에