fork download
  1. #include <stdio.h>
  2.  
  3. struct {
  4. struct {
  5. struct {
  6. char string[128];
  7. char *string_as_charpointer;
  8. char string_as_chararray[];
  9. } log;
  10. } msg;
  11. } m;
  12.  
  13. size_t sizeof_wrapper(char string_as_chararray[]) {
  14. return sizeof(string_as_chararray);
  15. }
  16.  
  17. int main(void) {
  18. printf("char[128]: %zu\n", sizeof(m.msg.log.string));
  19. printf("char*: %zu\n", sizeof(m.msg.log.string_as_charpointer));
  20. //printf("char[]: %zu\n", sizeof(m.msg.log.string_as_chararray)); // errors out with "invalid application of ‘sizeof’ to incomplete type ‘char[]’"
  21. printf("char[] via wrapper: %zu\n", sizeof_wrapper(m.msg.log.string));
  22. return 0;
  23. }
  24.  
Success #stdin #stdout 0s 4564KB
stdin
Standard input is empty
stdout
char[128]: 128
char*: 8
char[] via wrapper: 8