ja już rozglądać się na innych wątków związanych w jakiś sposób z tym, ale jakoś po prostu nie rozumiem ...ostrzeżenie: przechodzącą argumentu „z niekompatybilnego typu wskaźnika [włączoną domyślnie]”
I chcę wykonać FFT na zbiorze wartości, które oceniłem i napisałem ten program, aby najpierw odczytać wartości i zapisać je w tablicy o rozmiarze n
.
int main() {
// some variables and also a bit of code to read the 'messwerte.txt'
printf("Geben sie an wieviele Messwerte ausgelesen werden sollen: ");
scanf("%d", &n);
double werte[n]; //Array der "fertigen" Messwerte
in = fopen ("messwerte.txt","r");
double nul[n]; //Array von nullen
int logN = 14;
l=FFT(logN,&werte,&nul);
}
W tym samym pliku, ja również zrobić FFT za pomocą tego programu:
double FFT (int logN, double *real, double *im) //logN is base 2 log(N) {
// blabla FFT calculation
}
Jednak, kiedy mogę skompilować zawsze uzyskać ten błąd:
gcc FFT.c -lm
FFT.c: In function ‘main’:
FFT.c:94:2: warning: passing argument 2 of ‘FFT’ from incompatible pointer type [enabled by default]
FFT.c:4:8: note: expected ‘double *’ but argument is of type ‘double (*)[(unsigned int)(n)]’
FFT.c:94:2: warning: passing argument 3 of ‘FFT’ from incompatible pointer type [enabled by default]
FFT.c:4:8: note: expected ‘double *’ but argument is of type ‘double (*)[(unsigned int)(n)]’
Od tego to moje pierwsze programowanie, naprawdę nie wiem, co jest nie tak z moim kodem. Czy będę musiał ustawić więcej flag dla kompilatora lub podobnych rzeczy (ponieważ musiałem to zrobić, -lm
rzeczy lub nie skompilowałoby się i powiedział coś takiego, że nie znaleziono pow lub tak)?
Uświadomiono mi również, że może występować różnica podczas pisania na komputerze z systemem Windows lub Linux i używam systemu Linux, lubuntu 12.10, 32-bitowego, jeśli jest to problem systemu operacyjnego.
* kiedy robisz & werte próbujesz podać adres z adresu * Nie bardzo. & werte daje ten sam adres, ale z innym typem. – cnicutar
Przepraszamy. Nie adres pod adres, szukałem właściwego sformułowania adresu pierwszego elementu w tablicy 2D (co, jak widać, nie ma sensu samo w sobie). Znalazłem właściwy sposób, aby umieścić go w twojej odpowiedzi. :RE – varevarao