linux c 内存分配内存,linux c二级指针的内存分配和使用

#include

#include

#include

#include

int main(int argc, char **argv)

{

/* 这个是给str分配存储字符串地址的空间 */

char **str = (char**)malloc(sizeof(char*)*256);

/* 这个是给str分配str中的地址所指向的字符串存储空间的大小 */

*str = (char*)malloc(sizeof(char)*256);

/* 备份二级指针的首地址 */

char **strbak = str;

*str = "aaa";

/* 打印地址 */

printf ("addr-str=%p\n", str);

/* 打印aaa*/

printf ("*str=%s\n", *str++);

*str = "bbb";

printf ("addr-str=%p\n", str);

printf ("*str=%s\n", *str++);

*str = "ccc";

printf ("addr-str=%p\n", str);

printf ("*str=%s\n", *str++);

*str = malloc(32);

printf ("*str=%s\n", *str);

/* 直接拷贝会报段错误 */

strcpy (*str, "ddd");

printf ("sizeof *str=%d\n", sizeof(*str));

printf ("addr-str=%p\n", str);

printf ("*str=%s\n", *str++);

int i;

for (i=0; i<4; i++)

{

printf ("*strbak=%s\n", *strbak++);

}

return 0;

}

来源:https://www.cnblogs.com/etangyushan/p/3728770.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值