特定の理由から、構造体へのポインターを逆参照して、構造体の最初のメンバーのみにアクセスしたいと考えています。
これが合法かどうか、または特定の条件下でUBを引き起こす可能性があるかどうかを知りたいです。これに問題がある場合、正しい解決策は何でしょうか。
ありがとうございました。
#include <stdio.h>
#include <stdlib.h>
typedef struct test_s
{
void * data ;
struct test_s * next ;
} test_t ;
int main( void )
{
test_t * t = calloc( 1 , sizeof( test_t ) ) ;
int n = 123;
t->data = &n ; //int is used only for an address, this could be anything, an object for example
void ** v = ( void* )t ;
printf("Address of n: %p\nAddress of *t: %p\n\n" , &n , *v ) ; //dereference the pointer to struct to access its first member
return 0;
}