char 포인터 배열을 구성원 중 하나로 갖고 있으며 배열 요소를 설정/액세스하는 데 문제가있는 구조체를 만들려고합니다. 각 char 포인터는 malloc 된 버퍼를 가리킬 것입니다. 이것은 현재 구조체입니다. 내가포인터 배열 처리
char *buffer = malloc(100);
struct rt_args (*rThreadArgs) = malloc(sizeof(long) +
(sizeof(char *) * (numThreads)) +
sizeof(FILE*)
);
rThreadArgs->buffers[0] = buffer;
를 통해 버퍼의 요소에 액세스 할 때
struct rt_args {
long threadId;
char (*buffers)[];
FILE* threadFP;
};
는 그리고 "지정되지 않은 경계를 가지는 배열의 잘못된 사용"오류를 얻을. 배열의 크기를 미리 알지 못하기 때문에 크기를 하드 코딩 할 수 없습니다. (I 해봤 드 참조 버퍼 [0]와 두 번째 인덱스 추가? 나는 그것의 문법적 오류 내가 만들고있어 것처럼 기분이)
내가 무엇을 모르는 경우 :
그런 다음
는 그런 다음 포인터의 "정상적인"배열과 같은
buffers
을 사용할 수 있습니다 할뭔가처럼 배열의 크기? 입력에 따라 다릅니다. – Danzo
플렉시블 배열 멤버를 사용하는 경우 마지막 멤버 여야하며 사용하기 전에 입력에 따라 공간을 할당해야합니다. – haccks
마지막 멤버가되기 위해 정확히 필요한 이유는 무엇입니까? 나는 그것이 필요할 것이라고 생각하지 않는다. 그것은 단지 포인터 일 뿐이다. – ThoAppelsin