Я получаю предупреждающее сообщение вроде: Ожидаемое 'int *', но аргумент имеет тип 'int **' Ниже приведено мой код:* expected 'int *', но аргумент имеет тип 'int **' * warning in c
#include<string.h>
#include<stdio.h>
#define MAX_DL_SLOWA 30
void szyfr(char oryginalne[MAX_DL_SLOWA], int* dlugosc, int zaszyfrowane[MAX_DL_SLOWA+1]) {
int i, j;
*dlugosc = strlen(oryginalne);
for (i = 0; i < *dlugosc; i++) {
if (i < *dlugosc-1){
j = i + 1;
}else{
j = i + 1 - *dlugosc;
}
zaszyfrowane[i] = (int)oryginalne[j] - (int)'a';
}
}
void main(){
char slowo[MAX_DL_SLOWA];
int* dlugosc;
int kod[MAX_DL_SLOWA+1],i;
//Wczytanie i szyfrowanie
printf("Podaj slowo: ");
scanf("%s",&slowo);
printf("\nTwoje slowo: %s",slowo);
szyfr(slowo, &dlugosc, kod);
printf("\nTwoj kod: %s",kod);
}
Я получаю эту строку проверки, где я звоню szyfr метод с & Długość как арг. Кто-нибудь знает, как я могу изменить это, чтобы оно работало без предупреждений?
'int * dlugosc;' -> 'int dlugosc;' – BLUEPIXY
Вы не можете передать аргумент 'int **', где ожидается 'int * '? – immibis
Предупреждение кажется довольно четко сформулированным. Было бы хорошо, если бы вы могли объяснить, какую часть предупреждения вы не понимаете. – kaylum