无法初始化 NULL 字符数组?

Can't initialize a NULL char array?

我必须将 char 数组 [DIM_MAX] 初始化为空值,以便将其传递给另一个函数。在将其传递给此函数之前,我试图将其打印为局部变量,以便了解它是否假定值为零,但不幸的是,这并没有发生。

我做到了:

 static char bufferW[DIM_WRITE];

然后我想将这个缓冲区初始化为零。这样做是否正确?

*bufferW="NULL";

我必须将它传递给函数

write(0x02900800, bufferW, DIM_WRITE);

但 bufferW 未作为 NULL 字符传递,它是假定的最后一个值。我哪里做错了?我试过了:

bufferW==NULL;

是这样吗?我很抱歉这个基本问题。 任何帮助将不胜感激

亲切的问候

bufferW为数组,占用DIM_WRITE个字节

如果您尝试将数组中的每个字节都设置为 0,则您要调用的函数是

memset(bufferW, 0, DIM_WRITE); //Make sure to #include <string.h>

如果您无法访问 string.h 中的原型函数,您也可以使用简单的循环覆盖缓冲区,例如

for(int i = 0; i < DIM_WRITE; ++i)
  bufferW[i] = 0;

您可以随时在程序中执行此操作以覆盖 bufferW 中的值,但如果您尚未向缓冲区写入任何内容,则声明中的 static 范围说明符确保在程序开始时将其初始化为零。

要在缓冲区中写入字符串“NULL”,您可以

strcpy(bufferW,"NULL"); //Make sure to #include <string.h>

或者手动写入缓冲区中的每个字符

bufferW[0] = 'N';
bufferW[1] = 'U';
bufferW[2] = 'L';
bufferW[3] = 'L';
bufferW[4] = '[=13=]'; //Null terminator

但要使这些起作用,DIM_WRITE 必须至少为 5。