Как ссылаться на 2D-массив, инициализированный в файле .h, и использовать его в функции .c? - PullRequest
0 голосов
/ 24 февраля 2019

Вот мой .h файл.Я создаю двумерный массив 12x1860, который я хотел бы заполнить внутри моего файла .c.

/*
 * spectrogramMatrices.h
 */

#ifndef SPECTROGRAMMATRICES_H_
#define SPECTROGRAMMATRICES_H_


//global variables

extern int binaryFingerprint[12][1860];

void makeBinFingerprint(int shortBinSpectrum[12][186], int count);

#endif /* SPECTROGRAMMATRICES_H_ */

В моем файле .c я хочу создать функцию makeBinFingerprint(), которая заполняет двумерный массив 12x1860 10 различными сегментами двумерных данных 12x186.Я действительно хотел бы сохранить это в том массиве extern int binaryFingerprint[12][1860] 2d.Это показано ниже

void makeBinFingerprint(int shortBinSpectrum[12][186], int count){
    int i;
    int j;

    for (i = 0; i<12; i++){
        for (j = 0; j<186; j++){
            binaryFingerprint[i][(j+(186*count))] = shortBinSpectrum[i][j];   // we're going to be storing a lot of zeros, which may be a problem!

        }
    }
}

Видите ли вы какие-либо проблемы со мной, пытаясь сделать это таким образом?Спасибо

1 Ответ

0 голосов
/ 24 февраля 2019

Массив объявлен , а не инициализирован в заголовке.Декларация не является экземпляром ;то есть вы вообще не создали массив.

В файле .c вам нужно создать экземпляр;

int binaryFingerprint[12][1860]; // << Instantiation

void makeBinFingerprint(int shortBinSpectrum[12][186], int count){
    int i;
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...