Char array error, expected an expression, error

Invictus

I have the following code, I want to initialize the char array to NULL.

getting the following error

error: expected an expression g_device->name1[NAME_LENGTH-1] = {'\0'};

typedef struct device_ {

    uint32_t id;
    char name1[NAME_LENGTH];
    char name2[NAME_LENGTH];

} device_t;

device_t  *g_device = NULL;


void init_device(void)
{

    g_device = malloc(sizeof(device_t));
    g_device->id = 0;
    g_device->name1[NAME_LENGTH-1] = {'\0'};
    g_device->name2[NAME_LENGTH-1] = {'\0'};
}
2501

You cannot assign arrays in C, plus the types don't match anyway, g_device->name1[NAME_LENGTH-1] is a char and {'\0'} is a char[1].

Use strcpy:

strcpy( g_device->name1 , "" );

or manually terminate the array:

g_device->name1[0] = '\0';

Notice that you should set the first character to 0, not the last.

The above two examples will of course leave other elements uninitialized, so if you wanted to initialized them to 0, use memset or a loop:

memset( g_device->name , '\0' , NAME_LENGTH * sizeof( char ) );

or:

for( size_t index = 0 ; index < NAME_LENGTH * sizeof( *g_device->name ) ; index++ )
{
    g_device->name[index] = '\0';
}

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

expected primary-expression before 'char' error message

From Dev

Error: expected primary expression

From Dev

Expected expression error with %

From Dev

Error: integer expression expected

From Dev

"expected constant expression" Error

From Dev

IOS expected expression error

From Dev

textrun error expression expected

From Dev

Initialize an array in C error "expected expression before ‘]’ token"

From Dev

'Expected Expression' error when initializing multi-dimensional array

From Dev

error: expected expression before ‘float’

From Dev

error: expected expression before '{' token|

From Dev

Illegal start of expression and ';' expected error

From Dev

Bash error: Integer expression expected

From Dev

VBA Error Compile: Expected: Expression

From Dev

Syntax error: "integer expression expected"

From Dev

Syntax Error: expected expression, got '<='

From Dev

Expression expected error on Volley requests

From Dev

56:68: error: expected expression

From Dev

making a char array error

From Dev

making a char array error

From Dev

"char not expected" error when compiling in MINIX

From Dev

Expected identifier or ‘(’ before ‘char’ syntax error

From Dev

C++ lambdas, "error: expected expression"

From Dev

error: expected primary-expression before ‘int’

From Dev

javascript syntax error expected expression, got '<'

From Dev

Understanding the error "SyntaxError: expected expression, got '<'"

From Dev

Integer expression expected error in shell script

From Dev

Integer expression expected error with shell script

From Dev

error expected primary-expression before ';' token