struct A{
int *a1, *a2;
struct B{
int b1, b2;
double b3;
}***b_struct;
}a_struct;
//здесь приравниваем переменную b_struct со структурой В и тут вызывается //ошибка
func(){
a_struct.b_struct=(struct B)malloc(sizeof(struct B));
}
Структура в структуре
- есть структура такая:
Код:
-ошибка такая:
error not convert func::B to A::B
т.е. невозможно преобразовать структуру B в структуру A::B
как это избежать?
заранее спасибо!
а то код жутко C-ёвый
Цитата:
***b_struct
попробуй
Цитата:
(struct B***)malloc(sizeof(struct B));\
Так как может быть так:
Код:
struct A{
int *a1, *a2;
struct B{
int b1, b2;
double b3;
}*b_struct;
} a_struct;
struct C{
char t;
struct B{
int i1, i2, i3, i4, i5;
}*b_struct;
} с_struct;
a_struct.b_struct= (struct A::B*) malloc(sizeof(struct A::B));
c_struct.b_struct= (struct C::B*) malloc(sizeof(struct C::B));
int *a1, *a2;
struct B{
int b1, b2;
double b3;
}*b_struct;
} a_struct;
struct C{
char t;
struct B{
int i1, i2, i3, i4, i5;
}*b_struct;
} с_struct;
a_struct.b_struct= (struct A::B*) malloc(sizeof(struct A::B));
c_struct.b_struct= (struct C::B*) malloc(sizeof(struct C::B));
Вот рабочий код:
Код:
#include "stdafx.h"
#include <malloc.h>
struct A{
int *a1, *a2;
struct B{
int b1, b2;
double b3;
}*b_struct;
} a_struct;
void func(){
a_struct.b_struct= (struct A::B*) malloc(sizeof(struct A::B));
}
int _tmain(int argc, _TCHAR* argv[])
{
func();
return 0;
}
#include <malloc.h>
struct A{
int *a1, *a2;
struct B{
int b1, b2;
double b3;
}*b_struct;
} a_struct;
void func(){
a_struct.b_struct= (struct A::B*) malloc(sizeof(struct A::B));
}
int _tmain(int argc, _TCHAR* argv[])
{
func();
return 0;
}
Спасибо ребята за подсказку.
Код:
#include "conio.h"
#include "stdio.h"
#include "stdlib.h"
#include "iostream.h"
#include <malloc.h>
struct A{
int *a1, a2;
struct B{
int b1, b2;
double b3;
}***b_struct;
} a_struct;
struct classif_AB{
struct B *the;
struct classif_AB *next;
} **the_AB[3][24];
void func(){
a_struct.b_struct= (struct A::B***)malloc(sizeof(struct A::B));
int i,j,k;
struct classif_AB *node;
node->the = &a_struct.b_struct[k][j]; //здесь вызывается ошибка
}
int main(int argc,char* argv[])
{
func();
return 0;
}
#include "stdio.h"
#include "stdlib.h"
#include "iostream.h"
#include <malloc.h>
struct A{
int *a1, a2;
struct B{
int b1, b2;
double b3;
}***b_struct;
} a_struct;
struct classif_AB{
struct B *the;
struct classif_AB *next;
} **the_AB[3][24];
void func(){
a_struct.b_struct= (struct A::B***)malloc(sizeof(struct A::B));
int i,j,k;
struct classif_AB *node;
node->the = &a_struct.b_struct[k][j]; //здесь вызывается ошибка
}
int main(int argc,char* argv[])
{
func();
return 0;
}
А ошибка такая:
error C2440: '=' : cannot convert from 'A::B *__w64 ' to 'B *'
Как это избежать?
Заранее спасибо.