다른 질문이 있습니다. 배열을 [고정] [동적]으로 설정할 수 있습니까? 첫 번째 값은 파일의 판독기 (사용자가 사용하는 센서의 수)가되고 다른 값은 동적 배열 [읽는 시간]이됩니다.C에서 (고정) (동적) 2D 배열을 설정할 수 있습니까?
저는 2D 동적 배열에 대해 읽었습니다.하지만이 작업을 수행 할 수 있는지 여부는 알 수 없습니다. 어떤 조언?.
감사합니다.
다른 질문이 있습니다. 배열을 [고정] [동적]으로 설정할 수 있습니까? 첫 번째 값은 파일의 판독기 (사용자가 사용하는 센서의 수)가되고 다른 값은 동적 배열 [읽는 시간]이됩니다.C에서 (고정) (동적) 2D 배열을 설정할 수 있습니까?
저는 2D 동적 배열에 대해 읽었습니다.하지만이 작업을 수행 할 수 있는지 여부는 알 수 없습니다. 어떤 조언?.
감사합니다.
물론 가능합니다 ... 포인터 배열을 선언하면됩니다. 그런 다음 malloc
및 realloc
을 사용하여 각 요소에 저장된 하위 배열을 수정할 수 있습니다.
struct reading * data[num_sensors];
하지만 당신은 좀 동적 것에 대해 모두 크기를 얘기. 당신이해야 할 수 있습니다
struct reading ** data = malloc(sizeof(struct reading*) * num_sensors);
[고정] [동적]으로 배열을 설정할 수 있습니까?
예. 뭔가를하고있는 것은 length(i)
이 arr[i]
의 길이를 돌려 보낼
int *arr[fixed];
for (i = 0; i < fixed; i++) {
arr[i] = malloc(length(i) * sizeof(int));
}
을 좋아하여이를 달성 할 수있다.
당신은 이런 식으로 작업을 수행 할 수 있습니다
이#include <stdio.h>
#include <string.h>
#define FIXED 20
int main()
{
/*Array of integer pointers*/
int *pi4_arr[FIXED];
int i4_dyn_length= 0;
int i4_ctr = 0;
printf("Enter the dynamic length of array:");
/* Make sure to enter this value greater than 1 or, program*/
/* will crash at assignment before printf before the return*/
scanf("%d",&i4_dyn_length);
for(i4_ctr =0; i4_ctr < FIXED; i4_ctr++)
{
pi4_arr[i4_ctr] = malloc(i4_dyn_length * sizeof(int));
}/*for(i4_ctr =0; i4_ctr < FIXED; i4_ctr++) */
pi4_arr[0][0] = 1;
printf("\n\npi4_arr[0][0]: %d",pi4_arr[0][0]);
/*Make sure to call free before exit, to avoid memory leak */
return 0;
}
당신은 2-D VLA 할 수 있습니다 :'INT X [A] [B]''A'와' b '는 둘 다 변수입니다. 또는 다른 포스터에서와 같이 각 포인터가 길이가 b 인 배열을 가리키는 포인터의 1 차원 배열을 사용할 수 있습니다. 2 차원 배열과 동일하지는 않습니다. –