结构体 赋值 初始化-结构体类型的指针初始化和赋值问题

问题描述

结构体类型的指针初始化和赋值问题
编程的时候我定义了一个结构体,结构体有几个变量的值我必须要赋初值,因为循环得用。
结构体这样定义:
typedef struct
{
BYTE stream_Type;
unsigned short PID;
unsigned short InfoDescrip;
}M_PICE;
用的时候:
M_PICE* p_Mpice = NULL;
p_Mpice->InfoDescrip = 0;
运行到上一句就报错
Unhandled exception in DVB.exe:0xC0000005:Access Violation

解决方案

typedef struct pice
{
int stream_Type;
unsigned short PID;
unsigned short InfoDescrip;
}M_PICE;
M_PICE* pMypice;
int main(){
pMypice = (M_PICE*)malloc(sizeof(M_PICE));//此处分配内存空间,否则怎么存数据、
pMypice->InfoDescrip = 0;
printf(""%dn""pMypice->InfoDescrip);

}
赶紧采纳。

时间: 2024-10-30 18:53:03

结构体 赋值 初始化-结构体类型的指针初始化和赋值问题的相关文章

全面了解结构体、联合体和枚举类型_C 语言

一. 结构体: 1. 定义结构体类型: struct 结构体    {        任意类型 任意变量:        任意类型 任意变量:        -- }: 注意:这不是定义变量,而是自定义一种类型而已. 如 struct student    {     char name[10];//学生姓名             int height;//学生身高             bool sex;//学生性别 假设0表示女,1表示男.           }://此处分号不能少.

struct-结构体初始化问题, 定义了结构体和结构体数组,结构体中想存的数据写在了txt文件中,我该怎么做初始化

问题描述 结构体初始化问题, 定义了结构体和结构体数组,结构体中想存的数据写在了txt文件中,我该怎么做初始化 定义了结构体和结构体数组,结构体中想存的数据写在了txt文件中,我该怎么做初始化//定义结构体//struct achievement{int number; char name[20]; char sex; float achievement1achievement2achievement3;}tab_achievement[N]; 解决方案 写一个循环,从txt中读取数据,然后赋值

struct-数组赋值和结构体中的数组赋值问题

问题描述 数组赋值和结构体中的数组赋值问题 typedef struct _Teacher{ char name[20]; int age; }Teacher; void main(){ Teacher t1; t1.age=20; t1.name="abc";//报错为什么? char name[20]="abc";//不报错 } 求大牛给个详细的解释,对于abc C++编译器是如何处理的?是分配内存放在全局区,还是当做字面值 解决方案 首先,其实你是忘记了C++

c语言结构体中指针数组怎样赋值

问题描述 c语言结构体中指针数组怎样赋值 定义一个结构体struct AS{ char *p[1]:}:怎样用gets函数给指针数组赋值呢? 解决方案 看Unix/Linux上的man: Standard C Library Functions gets(3C)NAME gets fgets - get a string from a stream SYNOPSIS #include char *gets(char *s); char *fgets(char *s int n FILE *str

dll里面初始化结构体,返回应用程序指向结构体的指针,应用程序可以通过这个指针读取它的成员变量吗

问题描述 dll里面初始化结构体,返回应用程序指向结构体的指针,应用程序可以通过这个指针读取它的成员变量吗 dll里面初始化结构体,返回应用程序指向结构体的指针,应用程序可以直接通过这个指针读取它的成员变量吗? 解决方案 当然是可以的.但是更好的方式是把分配内存的工作交给调用者去做.因为这样不容易忘记释放内存.申请和释放的代码成对出现. 参考windows api里的GetWindowRect,它由调用者传入一个lpRect结构体指针,函数获取了窗口坐标,填充它. 解决方案二: 只要是在同一个

c语言-C语言函数的形参(结构体类型)和实参类型(指针)可以不同吗?

问题描述 C语言函数的形参(结构体类型)和实参类型(指针)可以不同吗? int numstus; int lens; student pointer; void main() { int i=1; char str[2]; lens=100; pointer=(student *)malloc(lens*LEN); /分配内存*/ numstus=0; welcome(); /*欢迎界面*/ while(i>0) { i=menu_select(); /*控制菜单*/ switch(i) { c

结构体指针初始化问题

问题描述 结构体指针初始化问题 定义一个队列结构体,想用init方法初始化一个该结构体的指针,testQueue1和testQueue2两种方法都有问题.Queue内部的front和rear指针无法初始化. 但如果是在主程序或者testQueue函数中用malloc初始化,却是可以的. main程序如下: #include "Queue.h" void testQueue1(); void testQueue2(); void testQueue3(); int main() { pr

【C/C++学院】0730-网站以及后门/结构体对齐、结构体面试分析/深拷贝与浅拷贝/队列/字符串封装

 网站以及后门 Windwos安装Apache服务器软件,进行测试.Localhost 将可执行程序xxx.exe改为xxx.cgi放到apache服务器上,通过浏览器进行访问. #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string.h> void main() { printf("Content-type:text/html\n\n&quo

C语言中结构体偏移及结构体成员变量访问方式的问题讨论_C 语言

c语言结构体偏移 示例1 我们先来定义一下需求: 已知结构体类型定义如下: struct node_t{ char a; int b; int c; }; 且结构体1Byte对齐 #pragma pack(1) 求: 结构体struct node_t中成员变量c的偏移. 注:这里的偏移量指的是相对于结构体起始位置的偏移量. 看到这个问题的时候,我相信不同的人脑中浮现的解决方法可能会有所差异,下面我们分析以下几种可能的解法: 方法1 如果你对c语言的库函数比较熟悉的话,那么你第一个想到的肯定是of