无法初始化 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。
我必须将 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。