volatile uint8_t reset_mask[768] = {0}
Bây giờ tôi đang đặt giá trị của thành phần mảng này thành 1 trong một trong các thao tác bên trong.Làm cách nào để đặt mảng biến động thành 0 bằng cách sử dụng memset?
Trong một cuộc gọi chức năng, tôi cần phải đặt tất cả các phần tử của mảng này để 0. Một cách là sử dụng vòng lặp for nhưng tôi tin rằng cách tốt hơn để gán tất cả các yếu tố của mảng là sử dụng memset
memset(reset_mask, 0, sizeof(reset_mask));
nhưng tôi nhận được lỗi này: - "đúc từ loại 'dễ bay hơi uint8_t * {aka dễ bay hơi unsigned char *}' gõ 'void *' phôi đi vòng loại"
Trong trường hợp chúng tôi không thể sử dụng memset ở đây, là có cách nào tốt hơn để thiết lập tất cả các phần tử của mảng biến động này trong một lần?
'std :: fill (std :: bắt đầu (reset_mask), std :: end (reset_mask), 0);' works. –
@ R.MartinhoFernandes Đó phải là câu trả lời (vì đó thực sự là câu trả lời đúng). Trong C, tất nhiên, anh sẽ phải sử dụng vòng lặp của riêng mình. –
Bạn đang sử dụng mảng biến động nào? Bạn có thể phải tắt một số/tất cả các ngắt? –