names
배열에 얼마나 많은 이름이 있는지 알고 싶습니다. sizeof(names)/sizeof(names[0])
이 정답을 제공합니다. 하지만 문제는 단지 char *names[];
을 선언 할 수 없다는 것입니다. 컴파일러가 나에게이 같은 오류를 준다. "이름의 저장을 알 수 없다". 이 오류를 피하려면이 코드를 char *names[] = {"somename", "somename2"};
처럼 선언해야합니다. 그러나 문제는 감속 후에 문자열을 할당 할 수 없다는 것입니다. 나는 어떤 조건들 후에 문자열을 할당하고 나의 문제는 그 조건들 후에 내가 가진 많은 문자열들입니다.문자열 배열에 몇 개의 요소가 있습니까?
내보기.
char *names[];
char word[10];
int i = 0;
while (fscanf(word, sizeof(word), fp)>0) {
// Think hello increase every time loop returns.
// such as "hello1", and the 2nd time "hello2"
if(strcmp(word, "hello1") == 0)
names[i] = word;
}
printf("size: %d\n", sizeof(names)/sizeof(names[0]));
그런 다음'malloc'을 사용하여 동적으로 스토리지를 할당하십시오. –
아무것도 명확하지 않습니다 (* 나에게 *). 당신이 시도한 것을 보여줄 수 있습니까? – coderredoc
@OliverCharlesworth 어떻게'malloc'을 사용할 수 있습니까? –