2011-02-23 5 views
0

나는 두 번 어둡게한다. 배열 :double dimentional array에 memset을 사용하는 방법은 무엇입니까?

alarm_1_active_buffer[MAX_NUM_ALARMS][MAX_ALARM_STRING_SIZE]; 

버퍼를 채우고 싶습니다. 이처럼
:

그것은 작동하지 않습니다
for(index=0; index<MAX_NUM_ALARMS ; index++) 
    { 
     memset(&alarm_1_active_buffer[index], 0, MAX_ALARM_STRING_SIZE); 
     memset(&alarm_1_active_buffer[index],string, MAX_ALARM_STRING_SIZE); 
    } 

. 배열이 연속적인 주소 공간에 배치되어 있기 때문에

답변

1

, 당신은 2 차원 배열을위한 특별한 조치를 취할 필요가 없습니다. memset(alarm_1_active_buffer, 0, MAX_NUM_ALARMS * MAX_ALARM_STRING_SIZE * sizeof(type of alarm_1_active_buffer));을 사용하면됩니다. 확인 만들기

+0

전체 배열을 지울 것입니다 ... i 번째 인덱스 만 지우고 싶습니다. – mujahid

+0

음 ... ..alarm_1_active_buffer [인덱스] = 0' – Asha

+0

한 번에 전체 배열을 지울 수 있습니다 - 외부 배열을 반복하고 각 색인을 지울 필요가 없습니다. –

1

#include <string.h>에 :

memset(alarm_1_active_buffer, 0, sizeof(alarm_1_active_buffer)); 

이 방법에 관계없이 배열의 요소 유형의 작동합니다.

관련 문제