나는 다음과 같은 문제를 가지고 : 지금은 모든 가능한 조합을 계산할 필요가 나는 문자 포인터char 포인터의 배열 요소의 총 문자 길이를 결정하는 방법은 무엇입니까?
char *opts[] = { "-a", "--append", "-b" };
의 배열 및
char cmd[] = "ls";
에 저장된 명령 이름이
을하는 I GNU Scientific Library를 사용하고 계산 조합을 사용하여 명령을 실행했습니다.
내가 가진 문제는 char *가 system()으로 전달되는 데 필요한 메모리 양을 계산하는 방법입니다. 이 일,
int length = strlen(cmd) * sizeof(char);
for (int i = 0; i < 3; ++i) {
length += strlen(opts[i]) * sizeof(char);
}
음,하지만 난이/오른쪽 최선의 해결책이 아니라고 감지 :
여기 내 첫 번째 시도입니다. 2 차원 배열을 평면 1 차원 배열로 캐스팅 할 수없고 크기를 가져올 수 없습니다 (잘못이 아니라면 C의 다차원 배열이 아니며 C는 그 배열을 모방합니다). 당신은 두 가지를 가지고 있지 않는 한
모든 것을는 일차원에 매핑 결국 때문에 : 그것을 사용의 우리가 일부를 넣을 수 있습니다, 이미 표시된 다운 한 동안 tommie75의 답변을
sizeof(char)
은 평등 1.PPS를 보장합니다 메모리 공간, 아무 언어 진정으로 다차원 배열을 가지고 ... – fortran