У меня возникли проблемы с назначением информации при использовании указателя.Передача и назначение указателя в C
Я не могу назначить какие-либо значения в функции readName
. и можете ли вы проверить, правильно ли я построил структуру? OR Есть ли другой способ сделать это, не изменяя пораженный и параметр функции?
typedef struct name
{
char info[];
int number;
//some more codes
} name;
typedef struct Data
{
name ** n;
//some more codes
} Data;
int readName(FILE *const fp, name **const names)
{
(*names)->number = 1; // no idea what to put here to store
strcat ((*names)->info, "aBC");
//codes
}
int read(FILE *const fp, Data *const data)
{
data->n = malloc(sizeof(name*)*1); // am I mallocing correctly?
data->n[0]=malloc(sizeof(name));
i = readName(fp, &data->n[Data->n]);
//codes
}
int main()
{
Data * d;
d = malloc (sizeof (Data));
i = read(fp, d); //assume fp is decleared
//codes that usses the struct
}
Вы должны объявить размер для 'Информация []'. – Barmar
'strcat()' on 'info' без видимой' \ 0' инициализации 'info'. – chux
«двойной указатель» может означать указатель на «double» или указатель на указатель на что-то. По соглашению обычно понимается первый. Если это не то, что вы намеревались, отредактируйте свой вопрос, чтобы перефразировать. – keshlam