struct dangdangtest
{
char email[];
char name[];
char addr[];
int num;
int bugnum;
char tel[];
char phone[];
double RMB; };
void main2()
{
//struct dangdangtest dd[1024*1024];//数组越界
//动态分配一个元素
struct dangdangtest *p = (struct dangdangtest *)malloc(sizeof(struct dangdangtest)*);
//写数据
sprintf(p->email,"15465325698@qq.com");//初始化
sprintf(p->name,"lj");
sprintf(p->addr,"重庆");
p->num = ;
p->bugnum = ;
sprintf(p->tel,"");
sprintf(p->phone,"");
p->RMB = 52.24;
//读数据
printf("\n%s,%s,%s,%d,%d,%s,%s,%f",p->email,p->name,p->addr,p->num,p->bugnum,p->tel,p->phone,p->RMB); getchar();
} void main()
{
int i;
struct dangdangtest *p = NULL;
struct dangdangtest *px = NULL;
p= (struct dangdangtest *)malloc(sizeof(struct dangdangtest)*);
//方式一 P[i]等价于一个结构体 数组访问的方式
//p[i]=p+i
/*for(i=0;i<10;i++)
{
sprintf(p[i].name,"lj%d",i);
sprintf(p[i].addr,"重庆%d",i);
p[i].num = 100;
printf("\n%s,%s,%d",p[i].name,p[i].addr,p[i].num);
}*/ //指针访问的方式
//for(i=0;i<10;i++)
//{
// //加上大括号 避免优先级的歧义
// sprintf((*(p+i)).name,"lj%d",i);
// sprintf((*(p+i)).addr,"重庆%d",i);
// (*(p+i)).num = 100;
// printf("\n%s,%s,%d",(*(p+i)).name,(*(p+i)).addr,(*(p+i)).num);
//} //指针轮寻
px = p;
for(px;px<p+;px++)
{
sprintf(px->email,"lj%x",px);
sprintf(px->addr,"重庆%x",px);
px->num = ;
printf("\n%s,%s,%d",px->email,px->addr,px->num);
}
getchar(); }

注意测试的时候main处修改 和注释就好了

c语言指针与结构体之内存动态分配的更多相关文章

  1. 36深入理解C指针之---结构体的内存处理

    一.有关结构体的内存处理包括,结构体指针和结构体成员指针的内存分配.结构体成员的数据对齐.结构体的内存释放 1.定义:与自定义数据类型(结构体)有关的内存分配.大小和释放问题 2.特征: 1).用内存 ...

  2. c语言指针与结构体

    #include <stdio.h> #include <stdlib.h> struct mydata { int num; ]; }; void main1() { /*i ...

  3. 数据结构复习之C语言指针与结构体

    数据结构指针复习: #include <stdio.h> void main() { ] = {, , , , }; // a[3] == *(3+a) printf(+a)); // a ...

  4. [todo0211]c语言指针,结构体的疑问

    #include <stdio.h> #include <mm_malloc.h> struct ListNode { int val; struct ListNode *ne ...

  5. C语言 结构体的内存对齐问题与位域

    http://blog.csdn.net/xing_hao/article/details/6678048 一.内存对齐 许多计算机系统对基本类型数据在内存中存放的位置有限制,它们会要求这些数据的首地 ...

  6. C语言结构体及其内存布局

    code[class*="language-"], pre[class*="language-"] { color: rgba(51, 51, 51, 1); ...

  7. 结构体,内存,指针例题.DOC

    2015.1.30 递归函数:1.自身调用自己:2.要有结束条件!typedef 后面加分号:一般后面的重定义名加_,例如:typedef unsigned long int uint_16;结构体成 ...

  8. C语言结构体的内存对齐问题

    在C语言开发当中会遇到这样的情况: #include <stdio.h> struct test { int a; char b; }; int main(int argc, const ...

  9. Android For JNI(五)——C语言多级指针,结构体,联合体,枚举,自定义类型

    Android For JNI(五)--C语言多级指针,结构体,联合体,枚举,自定义类型 我们的C已经渐渐的步入正轨了,基础过去之后,就是我们的NDK和JNI实战了 一.多级指针 指针的概念我们在前面 ...

随机推荐

  1. 新建cocos2d-xproject

     在cocos2d-x v3.1.1版本号中,採用命令行的方式来创建一个新的project.比方新建一个名为MyGame的project能够用以下的命令: watermark/2/text/aHR ...

  2. android4.4 settings 中控制卡1 卡2都振动

    在package/app/Settings/src/com/android/settings/SoundSettings.java

  3. android repo库的创建及代码管理

  4. GPG error [...] NO_PUBKEY [...]

    今天在Linux下遇到这个问题,发现很多资料都是英文的,为了方便出现同样错误的有英语阅读困难的人,整理解决方案如下: sudo apt-key adv --keyserver keyserver.ub ...

  5. 小学生之Java中的异常

    1.异常try{ //可能出现异常的代码}catch(Exception ex){ }finally{ //释放资源}2.异常的高级应用开闭原则:对修改关闭,对新增开放3.什么是异常?解析:异常是代码 ...

  6. C#。总结

    数据类型--变量与常量--运算符与表达式--语句(if,for)--数组--函数--结构体一.数据类型: (一)内建类型 整型(int short long byte uint ushort ulon ...

  7. Ruby与sass 与compass安装

     Ruby安装 windows平台下使用Rubyinstaller安装 1) 下载Rubyinstaller 2) 安装Rubyinstaller 记得勾选 add ruby executables ...

  8. 递归生成树对象,应用于Easyui,Tree控件

    1.生成树节点对象 /// <summary> /// 生成树的节点 /// </summary> public class TreeNode { public TreeNod ...

  9. 查看Linux相关信息

    1."uname -a ",可显示电脑以及操作系统的相关信息. 2."cat /proc/version",说明正在运行的内核版本. 3."cat / ...

  10. 解决iOS中 tabBarItem设置图片(image+title切图在一起)时造成的图片向上偏移

    解决iOS中 tabBarItem设置图片(image+title切图在一起)时造成的图片向上偏移 解决办法1:设置tabBarItem的imageInsets属性 代码示例: childContro ...