Declare member of struct as a pointer in c


 
Thread Tools Search this Thread
Top Forums Programming Declare member of struct as a pointer in c
# 1  
Old 10-11-2012
Declare member of struct as a pointer in c

I have a uint8_t *C = malloc(24*sizeof(uint8_t));

I need to send some integers and this *C to another node(in ad hoc network). So I am going to use a struct

Code:
` struct fulMsg { 
int msgType; 
int msgCount; 
//uint8_t *CC;
} fulMsg_t;

typedef struct fulMsg fulMsg_tt;`

there is a method called
Code:
 packetbuf_copyfrom(X, sizeof(X));

in my api(contiki). If I create struct like this
Code:
struct fulMsg *fmsg = &fulMsg_t;

I can use the above method like this
Code:
packetbuf_copyfrom(fmsg, 8);

and from the other end I can easily get those two values.

So my problem is when I am going to apply same thing to that pointer it is not working the network simulator that I am using suddenly be crashed (I think there is a segmentation fault). I can't initialize size of *C in the struct no. And how correctly do this fmsg->CC = C;

At the other end this is how I receive this struct is
Code:
struct fulMsg *r_fmsg = &fulMsg_t;

and
Code:
rfmsg = (fulMsg_tt *)(packetbuf_dataptr());

. So I can easily get values from other end. (No need to do ntoh and hton, but it is ok if this really needs that)

In simple what I want to do is send the value of *C contain and some other integers to another node. How can I correctly do this.

related question post by me regarding this project Segmentation fault when debugging in C
Thanks
# 2  
Old 10-11-2012
When you send a pointer you are NOT sending data. You are sending an address.
Code:
typedef 
 struct fulMsg { 
int msgType; 
int msgCount; 
uint8_t  *CC;
} fulMsg_t;

You are passing a reference, not the string of characters or binary data array you are pointing to. The reference on the other node is pointing to nothing. That is why you segfault. Unless your method is smart enough to create storage on the remote side and copy the array over there.
This User Gave Thanks to jim mcnamara For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Get pointer for existing device class (struct class) in Linux kernel module

Hi all! I am trying to register a device in an existing device class, but I am having trouble getting the pointer to an existing class. I can create a class in a module, get the pointer to it and then use it to register the device with: *cl = class_create(THIS_MODULE, className);... (0 Replies)
Discussion started by: hdaniel@ualg.pt
0 Replies

2. Programming

Check The value a pointer returned by struct s_client != 0

Hi guys , i got segment fault , and when i trace , found it happens since the value of pointer which is returned by Struct S_client (*ptr) is zero if (ptr !=0)i know , adding above line of code is not the solution and not correct for the case since above line only check for the pointer... (1 Reply)
Discussion started by: pooyair
1 Replies

3. Programming

Storing C++-struct in file - problem when adding new item in struct

Hi, I have received an application that stores some properties in a file. The existing struct looks like this: struct TData { UINT uSizeIncludingStrings; // copy of Telnet data struct UINT uSize; // basic properties: TCHAR szHost; //defined in Sshconfig UINT iPortNr; TCHAR... (2 Replies)
Discussion started by: Powerponken
2 Replies

4. Programming

Dereferencing pointer to a shared memory struct

I have what should be a relatively simple program (fadec.c) that maps a struct from an included header file (fadec.h) to a shared memory region, but I’m struggling accessing members in the struct from the pointer returned by shmat. Ultimately, I want to access members in the shared memory structure... (2 Replies)
Discussion started by: arette
2 Replies

5. Programming

C++ program is crashing on re-assigning const static member variable using an int pointer

Hi, Can any one tell me why my following program is crashing? #include <iostream> using namespace std; class CA { public: const static int i; }; const int CA::i = 10; int main() { int* pi = const_cast<int*>(&CA::i); *pi = 9; cout << CA::i << endl; } (6 Replies)
Discussion started by: royalibrahim
6 Replies

6. Programming

linked list node with pointer to struct

Suppose to have: struct Tstudent { string name, surname; int matriculation_num; }; struct Tnode { Tstudent* student; Tnodo* next; } L;I want to deference that "student" pointer. For example, I tried with: *(L->student).matriculation_numbut it not worked, as terminal... (4 Replies)
Discussion started by: Luke Bonham
4 Replies

7. Programming

pass a pointer-to-pointer, or return a pointer?

If one wants to get a start address of a array or a string or a block of memory via a function, there are at least two methods to achieve it: (1) one is to pass a pointer-to-pointer parameter, like: int my_malloc(int size, char **pmem) { *pmem=(char *)malloc(size); if(*pmem==NULL)... (11 Replies)
Discussion started by: aaronwong
11 Replies

8. Programming

Pointer to a struct (with pointers) *** glibc detected *** double free

I am using a structure defined as follows struct gene_square { double *x; double *y; };I have class, with a member function which is a pointer of this type: gene_square* m_Genes;I am allocating memory in the constructors like this: m_Genes = new gene_square; for (ii=0;... (1 Reply)
Discussion started by: jatoo
1 Replies

9. Programming

Accesing structure member:Error:dereferencing pointer to incomplete type

$ gcc -Wall -Werror struct.c struct.c: In function `main': struct.c:18: error: dereferencing pointer to incomplete type $ cat struct.c #include <stdio.h> #include <stdlib.h> #include <string.h> /*Declaration of structure*/ struct human { char *first; char gender; int age; } man,... (3 Replies)
Discussion started by: amit4g
3 Replies

10. Programming

Problem accessing struct member

I have a struct as follows... struct A { int a; ucontext_t X; //ucontext_t is another structure } How do I define a pointer to the above structure variable X of the type ucontext_t from within another function? eg. void foo() { struct A a; /////WHAT COMES IN... (1 Reply)
Discussion started by: jacques83
1 Replies
Login or Register to Ask a Question