c语言指针与结构体之内存动态分配
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语言指针与结构体之内存动态分配的更多相关文章
- 36深入理解C指针之---结构体的内存处理
一.有关结构体的内存处理包括,结构体指针和结构体成员指针的内存分配.结构体成员的数据对齐.结构体的内存释放 1.定义:与自定义数据类型(结构体)有关的内存分配.大小和释放问题 2.特征: 1).用内存 ...
- c语言指针与结构体
#include <stdio.h> #include <stdlib.h> struct mydata { int num; ]; }; void main1() { /*i ...
- 数据结构复习之C语言指针与结构体
数据结构指针复习: #include <stdio.h> void main() { ] = {, , , , }; // a[3] == *(3+a) printf(+a)); // a ...
- [todo0211]c语言指针,结构体的疑问
#include <stdio.h> #include <mm_malloc.h> struct ListNode { int val; struct ListNode *ne ...
- C语言 结构体的内存对齐问题与位域
http://blog.csdn.net/xing_hao/article/details/6678048 一.内存对齐 许多计算机系统对基本类型数据在内存中存放的位置有限制,它们会要求这些数据的首地 ...
- C语言结构体及其内存布局
code[class*="language-"], pre[class*="language-"] { color: rgba(51, 51, 51, 1); ...
- 结构体,内存,指针例题.DOC
2015.1.30 递归函数:1.自身调用自己:2.要有结束条件!typedef 后面加分号:一般后面的重定义名加_,例如:typedef unsigned long int uint_16;结构体成 ...
- C语言结构体的内存对齐问题
在C语言开发当中会遇到这样的情况: #include <stdio.h> struct test { int a; char b; }; int main(int argc, const ...
- Android For JNI(五)——C语言多级指针,结构体,联合体,枚举,自定义类型
Android For JNI(五)--C语言多级指针,结构体,联合体,枚举,自定义类型 我们的C已经渐渐的步入正轨了,基础过去之后,就是我们的NDK和JNI实战了 一.多级指针 指针的概念我们在前面 ...
随机推荐
- 使用nvm来管理nodejs版本
nvm 是 Mac 下的 node 管理工具,有点类似管理 Ruby 的 rvm,如果是需要管理 Windows 下的 node,官方推荐是使用 nvmw 或 nvm-windows .nvm主要用来 ...
- Linux安装mysql-python库时报错解决办法
用pip安装mysql-python库的时候遇到如下报错 root@LoidAir:~# pip install mysql-python Collecting mysql-python Using ...
- 【HPP开发】让所有中小企业拥有自己的APP
HPP hybirdApp或者hbuilderApp, 指通过html,css,js语言开发出ios和android两个版本的APP, 开发效率成倍上升,开发时间大幅缩减,开发成本同样也大大缩减. 移 ...
- ListView OnItemClickListener position 索引不正确
在使用ListView添加如下代码时 listview.setOnItemClickListener(new OnItemClickListener() { @Override public void ...
- UVA 10651 Pebble Solitaire(bfs + 哈希判重(记忆化搜索?))
Problem A Pebble Solitaire Input: standard input Output: standard output Time Limit: 1 second Pebble ...
- [ES6] When should use Map instead of Object
Use Maps when keys are unknown until runtime: Map: let recentPosts = new Map(); createPost( newPost, ...
- SURF特征
了解了SIFT特征后,来学习SURF特征. 虽说是SIFT的一个变种,可是跟SIFT还是有差别的 差别有例如以下: 1.尺度空间的构建(近似)不同. 2.同意尺度空间多层图像同一时候被处理 3.特征点 ...
- hdu 3395
KM裸题 每个鱼都认为自己是雄性,而且会攻击它认为是雌性的鱼,每个鱼只能被攻击一次,被攻击后会产卵(个数是给的两条鱼的值的异或运算) #include<string.h> #include ...
- WPF资源字典使用
资源字典出现的初衷就在于可以实现多个项目之间的共享资源,资源字典只是一个简单的XAML文档,该文档除了存储希望使用的资源之外,不做任何其它的事情. 1. 创建资源字典 创建资源字典的过程比较简单,只 ...
- PL/SQL Developer主界面窗口左边窗口默认设置
中文版:在菜单 工具 -> 首选项 -> 用户界面 -> 选项 窗口中,将“自动保存桌面”勾选上就可以了. 截图如下: 英文版:在菜单 Tools -> Preferences ...