C (코딩 경험이없는 프로그래머)에서 코딩하는 동안 문제가 발생했습니다. I는 주요 기능이인수가 호환되지 않는 형식의 오류를 제공하는 함수 호출
struct afreq
{
int freq;
unsigned char sym;
short int left,right,next;
};
같은 구조 가지고
struct afreq data[50] ;
INT 크기 = 조작 (데이터는 카운트);
이dictionary(data,var,size);
부분을 만드는 문제는 여기에 있습니다 : :
///////////////////////////// Definition of Dictionary function /////////////////////////////////////////
dictionary(struct afreq data[] ,char *var,size_t dataSize)// function definition create problem in first argument when caled from the another recursive function call inside this function.
dictionary(struct afreq data[] ,char *var,size_t dataSize)
{
int i;
printf("\n data: %d\n", dataSize);
for(i=2;i<dataSize;++i)
{
if(data[i].left=='\0')
{ int correspondance[data[30];
char temp[30];
strcpy(temp, var);
strcat(temp, "0");
printf("check1");
dictionary(data[correspondance[data[i].left]], temp,dataSize); //error here
}
printf("\n");
}
}
은 내가 원하는 무엇 //이 함수는 내가 아래 함수 호출이 크기를 사용하는 일부 조작 및 INT의 type.And의 반환 크기를 할 이것을 사용하려면? 나는 유일한 인수로 주어진 파일에서 알파벳을 읽어야합니다. 파일은 "Input.txt"이고 내부에 'abcdef'(내 프로그램에서 주파수를 계산합니다)를 포함하고 [symbol Frequency LeftChild RightChild] 형식으로 배열에 저장합니다 (예 : [a 1 0 0] [ b 2 0 0] [c 3 ab] 등 (허프 먼 코드와 비슷 함)). 여기까지 모든 것을 제대로했습니다. 그러나 나는 (우리가 huffman (path in o and 1)에서와 같이) 사전을 인쇄하려고 할 때 ("c"는 부모이고 "a"는 "o"와 "b" "1"). 이 부분을 구현하려면 위의 코드를 작성 했으므로 함수 호출의 첫 번째 인수에 오류가 발생합니다. 여기 (그러나 "ABCDEF"를 포함 유일한 인수에서 "를 Input.txt"파일을 포함하는 것을 잊지 마십시오.
Here is the output:
[email protected]:~/Desktop/Internship_Xav/Task2$ gcc ttask.c -o ttask
improve.c: In function ‘dictionary’:
improve.c:85:2: error: incompatible type for argument 1 of ‘dictionary’
improve.c:74:1: note: expected ‘struct afreq *’ but argument is of type ‘struct afreq’
'데이터를 [ i] .left' 타입이'short int'입니다. – BLUEPIXY
많은 문제가 있습니다 .. – Dipto
@BLUEPIXY 내 문제에 대한 해결책이 있습니까 (포인터를 사용하지 않을 의무가 있습니다. 외.) 제발 나를 도울 수 있니? 감사. (아래 anser하려고하는 사람이 정확히 무엇을 할 개미 이해했다. 그러나 포인터를 (포인터가 아닌) 모든 조각 또는 지침 제발 그것을 만드는 방법?) – user3085082