Unable to make new structures

Posted By: vinitrinh

Unable to make new structures - 05/19/22 06:04

Hi, I'm unable to make new structures and assign values to its attributes.

Problem 1: Unable to assign new attributes
Running the code below, the book title is empty for some reason.
Is there something wrong with the way I'm inserting the attribute value?
Code
typedef struct Books {
   char title[50];
} Book;

int main( ) {
   Book book;
   book.title =  "C Programming"; 
   printf( "Book title : %s\n", book.title);
   printf( "%s asd", book.title);
   return 0;
}


Zorro log:
Code
test_struct compiling........... ok

Book title :  asd


Problem 2: I'm unable to make a function that initializes these values for me

This is the code to repeat the error.
Code
typedef struct Books {
   char title[50];
} Book;
 
Book makeBook()
{
    Book book;
    book.title =  "C Programming"; 
    return book;
}

int main( ) {

   Book book = makeBook();
   printf( "Book title : %s\n", book.title);
   printf( "%s asd", book.title);
   return 0;
}


Error:
Code
test_struct compiling.........
Error in 'line 10: 
Syntax error: Wrong type SETRETV:::STRUCT@16
<     return book;
 >


Understand its slightly basic. But happy to receive any help on this.
Many thanks
Posted By: AndrewAMD

Re: Unable to make new structures - 05/19/22 10:30

The first is actually a string problem. You must use strcpy for char buffers:
https://zorro-trader.com/manual/en/str_.htm

For the second, Lite-C does not support returning structs. Lite-C does support pointers to structs as function arguments - use that instead.
Posted By: Petra

Re: Unable to make new structures - 05/20/22 12:08

List of C/C++ and lite-C differences:

https://zorro-project.com/manual/en/litec_c.htm
© 2024 lite-C Forums