2016-10-22 1 views

답변

0

이 코드에서 참조를 가져올 수 있는지, 작동 여부는 확실하지 않지만이 참조를 참조 할 수 있습니다.

my_struct_t *myStruct; 
size_t noOfElements; 
size_t completeSize; 
int index;  

/* ...code which sets the number of elements at runtime... */ 

completeSize = sizeof(my_struct_t) * noOfElements; 

myStruct = malloc(completeSize); 
memset(myStruct, 0, completeSize); 

/* ...and then access it as if it were an array...*/ 

myStruct[index].someInt = 10; // index < noOfElements 
0

메모리는 구조 자체에 할당 할 수는 없지만, 당신이 당신의 구조 배열에 대한 포인터를 정의 할 수 있습니다 다음 나중에 'N'의 크기의 malloc 또는 새로운()를 사용하여 메모리를 할당 할 수 있습니다 .

다음은 구조를 정의 할 수있는 방법입니다.

fun() { 
    node obj; 
    obj.arr = (int*)malloc(sizeof(int)*obj.n); 
} 

2) 새로운()

fun() { 
    node obj; 
    obj.arr = new int(obj.n); 
} 
를 사용하여 :
struct node {int n; int k; int *arr}; 

은의 malloc을 사용하여 다음과 같이 구조의 객체를 사용하여 할 수있는 메모리,

1)을 할당하려면

관련 문제