关于strdup的使用与理解
2011-11-28 13:41
253 查看
/* * File: main6.cpp * Author: Vicky * * Created on 2011年11月28日, 上午9:20 */ #include <iostream> struct Player { char name[2]; short age; struct Army { int count; } armys[20]; }; /* * */ int main(void) { std::cout << "sizeof(struct Player)\t" << sizeof(struct Player) << std::endl; std::cout << "---------------------------" << std::endl; char *name = "Vicky"; char *name2 = strdup(name); std::cout << "name2 = " << name2 << std::endl; free(name2); // 使用strdup可以free name2 = 0; // free(name); // ERROR name = 0; // 首先,name指针并为分配空间,而是指向了堆中"Vicky","Vicky"由系统销毁 std::cout << "---------------------------" << std::endl; char *name3; name3 = (char*)malloc(21); // 为name3指针指向的地址分配了空间,需要通过该指针进行销毁 strcpy(name3,"Jack"); free(name3); name3 = 0; return 0; }
sizeof(struct Player) 84
---------------------------
name2 = Vicky
---------------------------
运行成功(总计时间: 141毫秒)
相关文章推荐
- JAVA中关于set()和get()方法的理解及使用
- C++中关于指针初始化和使用NULL的理解
- 关于androidannotations(注解)的理解和使用(文档篇)
- 有关于java文件的相关方法的使用的理解。
- 关于Spring事务<tx:annotation-driven/>的理解(Controller可以使用@Transactional)
- 关于元件2801-4与MAX604项目延展使用理解
- stm32中关于NVIC_SetVectorTable函数使用的疑惑与理解
- 【条件渲染】关于在<template>上使用v-if分类的理解
- 关于 js 中的 call 和 apply使用理解
- JAVA中关于set()和get()方法的理解及使用
- 关于dubbo的理解,使用,常见问题以及如何更好的实施服务化
- 关于js中单引号(')和双引号(")的使用以及转义的理解
- 关于org.springframework.context.ApplicationContextAware类的使用理解
- 关于js中单引号(')和双引号(")的使用以及转义的理解
- 关于Spring事务<tx:annotation-driven/>的理解(Controller可以使用@Transactional)
- 关于使用Initramfs来挂载根文件系统的一些理解
- 关于进度条的使用理解(待续)
- 第一篇 关于依赖注入框架dagger2的使用和理解
- LinearLayout关于weight的使用心得(你真的理解对了么?)
- __atribute__使用:关于_attribute__ ((used,__section__(".xxxx")))的理解