我有2个结构,我想将一个结构分配给另一个结构,但是当我打印结果时,它会打印废话,功能:" ver_tope"负责这样做,我做得怎么样?,这是代码:
#include <stdio.h>
#include <stdlib.h>
#define TAM 4
typedef struct{
char nomyap[40];
int edad;
}t_info;
typedef struct {
t_info pila [TAM];
int tope;
}t_pila;
void ver_tope(const t_pila *p, t_info *d);
int main()
{
t_pila pila;
t_info info;
//I CHARGE BOTH STRUCTS
ver_tope(&pila, &info);
return 0;
}
void ver_tope(const t_pila *p, t_info *d)
{
*d = p->pila[(p->tope)-1];
return ;
}
答案 0 :(得分:0)
尝试在main()ex:
中为pila.tope添加初始化... //I CHARGE BOTH STRUCTS
pila.tope =2;
ver_tope(&pila, &info);
...
停止了分段错误...
答案 1 :(得分:0)
int main()
{
t_pila pila;
t_info info;
ver_tope(&pila, &info);
return 0;
}
您尚未初始化任何变量。由于pila
是作业的来源,您可以执行以下操作:
int main()
{
t_pila pila = { 0 };
pila.tope = 1;
t_info info;
ver_tope(&pila, &info);
return 0;
}
此处我默认初始化pila
,然后将其tope
成员设置为1
。自info
分配ver_tope
以来,我没有初始化ver_tope
。如果将t_info
转换为返回{{1}}的函数,则会更清楚。