키보드에서 사용자가 알 수없는 양의 문자열을 가져와 입력 된 모든 문자열을 가리 키도록 문자열 포인터의 배열을 설정해야합니다. I 모두에 대한 포인터를 보유 할 배열되는 char *str_arr[]
에 메모리를 할당하려는 그 후C에서 실시간으로 사용자가 입력 한 문자열에 메모리를 할당하는 방법은 무엇입니까?
printf("Enter string number %d\n",num_of_strngs+1);
fflush(stdin);
scanf("%s",tmp_strng);
:
는 다음 코드를 사용하여 사용자가 입력 한 문자열을 보유하는 변수char tmp_strng[]
정의 현. 처음에는 검사와 메모리 할당을 수행
정말 작동하지 않습니다
if((tmp_str_arr[num_of_strngs]=realloc(str_arr,strlen(tmp_strng)))==NULL)
{
free(str_arr);
printf("Error: couldn't allocate memory. Exiting.");
return 1;
}
str_arr[num_of_strngs]=tmp_str_arr[num_of_strngs];
str_arr[num_of_strngs++]=tmp_strng;
... 여기 누구 잘못 (또는 오른쪽) 무엇을 말해 줄 수? 가능한 한 많이 realloc()과 scanf()를 주요 함수로 사용하고 싶습니다.
'fflush (stdin)'은 정의되지 않은 동작입니다. (일부 구현에서는 작동 할 수도 있지만) –
질문을 이해하기에 충분한 코드가 아닙니다. 'num_of_strngs','str_arr','tmp_str_arr'을 보여주세요. –
배열을 다시 할당 할 수 없습니다. 그들은 선언 된 크기로 고정됩니다. – TerraOrbis