У меня есть главный файл .cpp с этим:ехЬегп проблемы с массивом структур C++
#include "stdafx.h"
#include "Form1.h"
#include <iostream>
...
#include <stdio.h>
const int MAX_LEN = 1000;
struct DataLine {
char StartCode;
int ByteCount;
int Address;
int RecType;
int DBytes[16];
int Checksum;
};
DataLine AllData[MAX_LEN];
Тогда у меня есть form.h со следующим:
extern const int MAX_LEN;
extern struct DataLine AllData[MAX_LEN];
//later on in header file
AllData[index].Startcode = sc;
AllData[index].ByteCount = i_Byte_Count;
...
Это не будет компилировать давать множество ошибок, но первое: 'DataLine *' : unknown size
. Должен ли я изменить некоторые вещи на typedef? Я не совсем уверен, почему это не нравится.
Я не уверен, что 'extern const int MAX_LEN = 4033;' имеет большой смысл. Если это переменная 'extern', вы не должны придавать ей значение! –
Ах, да. Я это исправил. Все те же ошибки. –
Основная проблема была решена в ответах других. Тем не менее, я думал, что должен указать, что ваш заголовочный файл немного странный по-другому. Не имеет смысла выполнять присвоения (например, 'AllData [index] .StartCode = sc;') в заголовке, если вы не являетесь '# include' -в его непосредственно в тело функции. –