БПФ гауссова; не знаю, где/как вставлять операторы печати для значений

Итак, я недавно начал использовать FFTW совсем недавно, и я пробовал его на кривой Гаусса. Все компилируется отлично (когда сделано напрямую, еще не пытались вызвать make еще), но я хочу, чтобы он печатал мои значения, и я не уверен, куда помещать эти утверждения в свой код; Я новичок в работе на C/C++. Это мой код:

#include <stdio.h>
 #include <stdlib.h>
 #include <complex.h>
 #include <math.h>
 #include "fftw3.h"

 int main(int argc, const char* argv[])
 {

 ****** complex *in, *out, *data;

 fftw_plan p;

 int i,j;
 int w=20;
 int h=20;
 ****** a = 2;
 ****** *x=malloc(i*j*sizeof(******));
 in = (****** complex*) fftw_malloc(sizeof(****** complex) * w * h);
 out = (****** complex*) fftw_malloc(sizeof(****** complex) * w * h);
 for(i=0; i</math.h></complex.h></stdlib.h></stdio.h>
<p> Моя попытка:</p> <pre class="prettyprint linenums"> printf("x=["); for(i=0; i</pre><code> <p> Вторая попытка:</p> <pre class="prettyprint linenums"> printf("x=["); for(i=0; i</pre><code> <p> Единственное сообщение об ошибке, которое я получаю сейчас, это то, что у меня слишком много аргументов в creal</p>
1 ответ

Вы можете поместить свой код печати где-нибудь после fftw_execute и перед fftw_free.

Обратите внимание, что у вас есть ошибка в распределении x - вам нужно использовать w и h для размера, а не я и j. Хотя при ближайшем рассмотрении x даже не используется в вашем коде, вы должны просто избавиться от этого распределения.

Также обратите внимание, что ваш код выглядит чисто C, а не C++ - вы должны скомпилировать его как C и не выдавать результат malloc.

licensed under cc by-sa 3.0 with attribution.