Unexpected pointer result in linked list

I want to reach linked list like an array. I write a code like that but i get unexpected result. Main problem is, when i check sizeof(myrecord) value, i get 27 bytes, but actually difference between the records is 32 bytes. Do you know where is the error?

1. You must be compiling that program as c++, not C because C requires the keyword struct before each use of the structure name, such as struct mystrut . Change the file extension of the program file to *.c

2. >>(first+1)->number
You can't access members like that because its a linked list, not an array. The correct way is first->next->number Its a lot simpler to use a loop

sizeof() is not an issue if you use ->next as recommended above, however, here are some details:
1) sizeof() is returning the number of bytes you used (4 + 15 + 4 + 4) = 27,
but the compiler rounds up to a multiple of 3, 8, 16, or 32, depending on options.
You can expect the compiler (and malloc()) to reserve an arbitrary number of bytes (zero or more) than you requested.

2) You cannot assume that multiple calls to malloc() return equally-spaced pointers. You must treat each allocated block as if it was randomly located relative to the other blocks.

Hi. so this is actually a continuation from another question of mine[Here](https://www.daniweb.com/programming/software-development/threads/506795/dynamically-add-values-into-datagridview-cell-from-listbox-vb2010) but i was advised to start a new thread as the original question …

I have a 2d matrix with dimension (3, n) called A, I want to calculate the normalization and cross product of two arrays (b,z) (see the code please) for each column (for the first column, then the second one and so on).
the function that I created to find the ...

Write a C program that should create a 10 element array of random integers (0 to 9). The program should total all of the numbers in the odd positions of the array and compare them with the total of the numbers in the even positions of the array and indicate ...