메신저는 사용자 입력 문자열을 배열에 저장하는 프로그램을 작성합니다. 그런 다음 배열을 두 번째 요소를 인쇄하는 함수로 전달합니다. 그러나 나는 함수가 실행될 때마다 프로그램이 충돌한다는 것을 알고있다. 아래배열에 저장된 문자열을 인쇄하는 함수를 작성합니다.
내 샘플 코드 :
main()
{
int num, count;
char strStorage[10][10];
printf("\nEnter how many strings: ");
scanf("%d" , &num);
fflush(stdin);
for (count = 0 ; count < num ; count++)
{
printf("Enter a string: ");
gets(strStorage[count]);
fflush(stdin);
}
//This works
printf("%s", strStorage[2]);
printMyArray(strStorage);
}
void printMyArray(char *myArray[ ])
{
//This doesnt work
printf("%s", myArray[2]);
}
임 배열이 함수에 전달되는 방법을 배우기 위해이 일을. 아무도 이걸 도와 줄 수 있다면 고맙겠습니다.
감사
오류 메시지가 표시됩니까? 어떤 환경을 사용하고 있습니까? GCC, Visual Studio? 또한 고정 크기 배열을 사용하고 있다고 생각하십시오. 9 자 이상을 입력하면 ('\ 0'의 후행을 잊지 마세요. 배열 내부의 경계를 덮어 씁니다). C에서는 배열을 전달하지 않고 변수의 포인터 또는 주소를 실제로 전달합니다. –
Note : 입력 스트림으로'stdin'을 지정하는'gets' 대신에'fgets'을 사용해서는 안됩니다. – JBL
프로그램이 충돌하여 Windows 오류보고 문제가 발생합니다. – kype