如何使用memset进行二维数组?

发布于 2024-10-18 22:52:57 字数 398 浏览 6 评论 0原文

我有一个双暗。数组:

 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);
    }

它不起作用。

I have a Double dim. array:

 alarm_1_active_buffer[MAX_NUM_ALARMS][MAX_ALARM_STRING_SIZE];

I want to clear the buffer before filling it.
Like this :

 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);
    }

It is not working.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

橘虞初梦 2024-10-25 22:52:57

由于数组放置在连续的地址空间中,因此您不必对二维数组执行任何特殊操作。您可以简单地使用memset(alarm_1_active_buffer, 0, MAX_NUM_ALARMS * MAX_ALARM_STRING_SIZE * sizeof(alarm_1_active_buffer的类型));。

Since the arrays are laid in continuos address spaces, you don't have to do anything special for 2d arrays. You can simply use memset(alarm_1_active_buffer, 0, MAX_NUM_ALARMS * MAX_ALARM_STRING_SIZE * sizeof(type of alarm_1_active_buffer));.

瑾兮 2024-10-25 22:52:57

确保首先#include

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

无论数组中元素的类型如何,此方法都有效。

Making sure to #include <string.h> first:

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

This method works regardless of the type of elements in the array.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文