구조와 신뢰성에 memset과 memcopy를 사용하는 것에 대한 질의가 있습니다. 예를 들어 : 내가 0으로 설정하면 memset 함수에 괜찮 :Memcpy와 Memset은 C의 Short Type 구조체에
나는
1)이
typedef struct
{
short a[10];
short b[10];
}tDataStruct;
tDataStruct m,n;
memset(&m, 2, sizeof(m));
memcpy(&n,&m,sizeof(m));
내 질문은 같은 코드가 보인다 있습니다. 하지만 2로 설정하면 m.a와 m.b가 2 대신 514가됩니다. 짧은 문자 대신 숯으로 만들면 괜찮습니다. 0이 아닌 초기화에 memset을 사용할 수 없다는 뜻입니까?
2) : short 유형의 위 두 구조 사이에서 memcopy를 수행하는 것이 신뢰할 수 있습니까? 나는 a, b, c, d, e의 거대한 문자열을 가지고 있습니다 ... 나는 완벽한 일대일 복사인지 확인해야합니다.
3) : 위와 같은 구조로 수집하는 것이 아니라 개별 배열에 memset 및 memcopy를 사용하는 것이 더 낫습니까?
하나 이상의 쿼리 나 변수들의 어레이가 위에 structue에서
. 그러나 나는 이러한 배열 에 포인터를 전달하고 그리고 난 또는 memcopy의 memset 함수에만 값이 아닌 주소를 변경하면 나는이 경우 구조
typedef struct
{
short *pa[10];
short *pb[10];
}tDataStruct;
tDataStruct m,n;
memset(&m, 2, sizeof(m));
memcpy(&n,&m,sizeof(m));
이러한 포인터를 수집 할 경우. 대신 값을 어떻게 변경합니까? 프로토 타입이 잘못 되었나요?
좋습니다. 귀하의 입력은 매우
감사 DSP 사람
리차드, 답장을 보내 주셔서 감사합니다. 난 16 비트로 모든 데이터를 가지고있다. memset가 바이트로만 작동하면 잘못된 대답을하기 때문에 단어에 사용할 수 없습니다. 이 올바른지? – user437777
두 가지 예외가 있습니다. 0 또는 -1 (0xFF)을 채우는 데 사용할 수 있습니다. 다른 값들에 대해서는 그렇게 유용하지 않습니다. –
감사합니다. 리차드. 이제 알겠습니다. 한 번 더 쿼리를 업데이트했으며 입력 내용에 감사드립니다. – user437777