2014-02-12 3 views
0

포인터가 있다고 가정하면 char *a입니다.C에서 구조체 내부에 포인터 할당?

그리고

struct b { 
unsigned short num; 
unsigned short size; 
unsigned char *a;}; 

어떻게 '는'이 경우에 물건을 할당해야? 감사합니다. .

+0

그것은 무엇을 의미하는지에 무엇'구조체 b'을 따라 literral 문자열을 사용할 수 있지만. – BLUEPIXY

답변

0

에 따라 다릅니다. foo.a에서 a은 무엇을 가리 키기를 원합니 까? 그런 다음 :

struct b foo = ...; 
foo.a = a; 

아니면 foo.aa의 사본을 가리 키도록 하시겠습니까? 그런 다음 : 당신이 null로 끝나는 문자열이있는 경우 lengthOfAstrlen(a)입니다

struct b foo = ...; 
foo.a = malloc(sizeof(char) * lengthOfA); 
memcpy(foo.a, a, lengthOfA); 

.

0

동적으로 메모리를 할당하고 pointer a에 할당되었습니다. struct b 유형의

#define EXAMPLE_SIZE 25 
main() 
{ 
struct b sample= { 0, }; 
sample.a = malloc (EXAMPLE_SIZE * sizeof (unsigned char));  
} 
0
b obj; 
unsigned char ch = 'F'; 
obj.a = &ch; 
1

선언 변수는 다음 기존의 메모리 위치에 a 포인트, 또는 당신은 하나 이상의 방법으로 지정할 수 있습니다

struct b buf; 
buf.a = (unsigned char *)malloc(YOUR_SIZE_IN_BYTE); // allocated memory for a 
// fill content into a here 
0

malloc를 사용하기위한 메모리를 할당

1. 동적으로 메모리 할당 (사용자 입력을 원할 경우)

// you can use realloc also if you want 

struct b t1 ; 

b.a = malloc(x * sizeof (char)); 

//then you can read user from input. 

2. 초기화가

struct b t2 = {0,4,"hey"}; 
관련 문제