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. AvalonEdit 对于选定的文本添加前缀和后缀

    1: /// <summary> 2: /// 两边追加标志 3: /// </summary> 4: /// <param name="syntax" ...

  2. 你需要知道的九大排序算法【Python实现】之冒泡排序

    二.冒泡排序 基本思想:它的思路很有特点循环,两两向后比较.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数 ...

  3. Java 将自己定义的对象作为HashMap的key

    须要继承Map的equals函数和hashCode函数 package com.category; import java.util.HashMap; public class GenCategory ...

  4. 网页JavaScript1

    DOM的操作 windows对象操作 属性: opener,打开当前窗口的源窗口,首次启动 是null. dialogArgument,对话框的返回值 子对象: history , location ...

  5. Android常见开源解决方案

    原文:http://m.pstatp.com/group/6348269082899497218/?iid=6036708044&app=news_article&tt_from=mo ...

  6. Linux_x64安装Oracle11g(完整版)

    一.修改操作系统核心参数 在Root用户下执行以下步骤: 1)修改用户的SHELL的限制,修改/etc/security/limits.conf文件 输入命令:vi /etc/security/lim ...

  7. Cookie 添加,读取,删除

    Name,value – 声明时 new Cookie(key,value); Path        - 默认值,即为当前保存cookie的这个serlvet所在的路径. 如果Cookie在这样的路 ...

  8. PHP 中的注释

    // 这是 PHP 单行注释 /* 这是 PHP 多行 注释 */ <?php $txt1="Learn PHP"; $txt2="w3cschool.cc&quo ...

  9. CSS XHTML规范化命名参考

    CSS命名规则 头:header 内容:content/containe 尾:footer 导航:nav 侧栏:sidebar 栏目:column 页面外围控制整体布局宽度:wrapper 左右中:l ...

  10. pyqt5通过文本对话框打开文件

    点击按钮,打开文本对话框,找一人文件,打开并显示内容 QFIleDialog                                                              ...