군대갔다 얼마전 전역하고 바로 복학한 놈인데 자료구조 첫수업부터 ㅂㄷㅂㄷ하고있음

문자열을 입력받아서 각 문자의 빈도를 출력하는 코드인데 자꾸 막힘.




#include <stdio.h>


#define  STR_LEN 100

#define  CHAR_CTR 128


#pragma warning( disable : 4996 )


void main()

{

int nAns[CHAR_CTR][2];

char strBuffer[STR_LEN];


while (1) {

void FreqString(char *, int[CHAR_CTR][2]);

void OutputResult(int[CHAR_CTR][2]);


printf("Input String: ");

gets(strBuffer); // 문자열을 입력

if (*strBuffer == NULL)

break;

FreqString(strBuffer, nAns); // 문자열에서 문자열의 출현빈도를 계산

OutputResult(nAns); // 문자들의 출현 결과를 출력한다.

}

printf("Bye, .... ");

}


int FindIndex(int nChar, int nCtr[CHAR_CTR][2], int nLastNdx)

{

for (int nNdx = 0; nLastNdx; nNdx++)

{

if (nChar == nCtr[nNdx][1])

return nCtr[nNdx][2];

}

nLastNdx++;

nCtr[nLastNdx][1] = nChar;

nCtr[nLastNdx][2] = 0;

return nCtr[nLastNdx][2];

// nCtr에 이미 출현한 nChar의 색인을 찾아 return 한다.

// 아직 출현하지 않았으면 다음 빈 곳의 색인을 return 한다.

}


void FreqString(char *str, int nCtr[CHAR_CTR][2])

{

int FindIndex(int nChar, int nCtr[CHAR_CTR][2], int nLastNdx);

int nLastNdx = -1;


for (int i = 0; str[i] == NULL; i++)

{

nCtr[i][2] = FindIndex(str[i], nCtr, nLastNdx); // str에서 출현하는 문자들의 빈도를 nCtr에 저장한다.

}

}


void OutputResult(int nCtr[CHAR_CTR][2])

{

for (int nNdx = 0; nNdx < CHAR_CTR; nNdx++)

{

if (nCtr[nNdx][1] == NULL || nCtr[nNdx][2] == 0)

break;

else

printf("%c: %d ", nCtr[nNdx][1], nCtr[nNdx][2]);

}

// 결과를 출력한다.

}






여기서 빨간글씨 부분에서 뭐가 잘못된건지 Ctrl+F5 누르면 무슨 문자열을 입력해도 이상한거 128개 나오고 땡임ㅠㅠ
C 다시 처음부터 시작해야되나요 ㅠㅠ