Неизвестная ошибка размера - PullRequest
0 голосов
/ 23 сентября 2010

Я должен использовать этот код, но получаю следующую ошибку:

ошибка c2036'Complex_Z 'неизвестного размера

typedef struct Complex_Z{ 
 double r, i; 
} ;

void update_projection_zprimme(struct Complex_Z *X, struct Complex_Z *Y, struct Complex_Z *Z, 
   int numCols, int maxCols, int blockSize, struct Complex_Z *rwork, 
   struct primme_params *primme) {

   int j;    /* Loop variable  */ 
   int count;
  struct Complex_Z tpone = {+1.0e+00,+0.0e00};
  struct Complex_Z  tzero = {+0.0e+00,+0.0e00};

   /* --------------------------------------------------------------------- */
   /* Zero the work array to prevent floating point traps during all-reduce */
   /* --------------------------------------------------------------------- */

   for (j = 0; j < maxCols*blockSize; j++) {
      rwork[j] = tzero; //error c2036'Complex_Z 'unknown size
   }

Ответы [ 3 ]

1 голос
/ 23 сентября 2010

Ваш код:

typedef struct Complex_Z{ 
    double r, i; 
} ;

по совпадению объявляет тип struct Complex_Z, но не дает имя для typedef.В частности, он не превращает Complex_Z в синоним struct Complex_Z.

Однако я не вижу, где код ссылается только на Complex_Z - хотя сообщенное сообщение об ошибке указывает, что ононе хватало struct.Поскольку код является фрагментом, я думаю, что произошло изменение между временем работы компилятора и отображением кода.

0 голосов
/ 23 сентября 2010

Поскольку вы объявляете typedef struct Complex_Z {}, который недопустим, 'C'

это s / b:

typedef struct  {
double r, i;
} Complex_Z;

, а затем указываете struct Complex_Z

, когда вы должныссылаться на Complex_Z

, например:

  struct Complex_Z tpone = {+1.0e+00,+0.0e00};
  struct Complex_Z  tzero = {+0.0e+00,+0.0e00};

s / b

  Complex_Z tpone = {+1.0e+00,+0.0e00};
  Complex_Z  tzero = {+0.0e+00,+0.0e00};
0 голосов
/ 23 сентября 2010

Я подозреваю, что эти фрагменты кода происходят из более чем одного исходного файла, и ваш цикл for происходит в месте, где определение Complex_Z не отображается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...