结构体二级指针的内存分配

jiamianshiye jiamianshiye 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
先贴上代码。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>

struct infomation{
char plate_num[16];
char time_str[32];
};


int main(void)
{
int i = 0;
struct infomation **p2Info = malloc(5 * sizeof(struct infomation *));
if(p2Info == NULL){
printf(" %d cannot malloc mem!\n", __LINE__);
return -1;
}
for(i = 0; i < 5; i++){
*(p2Info + i) = malloc(sizeof(struct infomation *));
if(*(p2Info + i) == NULL){
printf(" %d cannot malloc mem!\n", __LINE__);
return -1;
}
strcpy((*(p2Info + i))->plate_num, "hello world");
strcpy((*(p2Info + i))->time_str, "2015-03-21");
}
printf("%s %s\n", (*(p2Info + i))->plate_num, (*(p2Info + i))->time_str);


return 0;
}


在打印printf("%s %s\n", (*(p2Info + i))->plate_num, (*(p2Info + i))->time_str); 时,可以打印出正确结果。
我这里的问题就是为什么能打印出正确结果?
在循环内分配空间, *(p2Info + i) = malloc(sizeof(struct infomation *));应该有问题吧,我觉得是该改成
*(p2Info + i) = malloc(sizeof(struct infomation )); 才对。
...全文

相关推荐

数据结构中指针的应用及分析.pdf

#资源达人分享计划#

结冰架构

C语言中的指针运算高级技巧:深入探索与实践应用

指针是C语言中非常强大的特性,它提供了直接操作内存的能力。通过掌握指针与数组的关系、指针和函数的结合使用、以及指针在动态内存管理中的应用,程序员可以编写出更高效、更灵活的代码。本文介绍的高级技巧,如指针的指针和指针与结构体的结合使用,可以帮助读者在实际编程中更好地应用指针。希望这些内容能够帮助读者提高在C语言中使用指针的能力。

2401_85812053

指针在C语言中的作用分析.pdf

指针在C语言中的作用分析.pdf

数据资源

深入理解C语言指针的奥秘.doc

深入理解C语言指针的奥秘.doc 深入理解C语言指针的奥秘.doc 深入理解C语言指针的奥秘.doc 深入理解C语言指针的奥秘.doc 深入理解C语言指针的奥秘.doc 深入理解C语言指针的奥秘.doc 深入理解C语言指针的奥秘.doc 深入理解C语言指针的奥秘.doc 深入理解C语言指针的奥秘.doc 深入理解C语言指针的奥秘.doc 深入理解C语言指针的奥秘.doc 深入理解C语言指针的奥秘.doc 深入理解C语言指针的奥秘.doc 深入理解C语言指针的奥秘.doc 深入理解C语言指针的奥秘.doc 深入理解C语言指针的奥秘.doc 深入理解C语言指针的奥秘.doc 深入理解C语言指针的奥秘.doc 深入理解C语言指针的奥秘.doc 深入理解C语言指针的奥秘.doc 深入理解C语言指针的奥秘.doc 深入理解C语言指针的奥秘.doc 深入理解C语言指针的奥秘.doc 深入理解C语言指针的奥秘.doc 深入理解C语言指针的奥秘.doc 深入理解C语言指针的奥秘.doc 深入理解C语言指针的奥秘.doc 深入理解C语言指针的奥秘.doc 深入理解C语言指针的奥秘.doc 深入理解C语言

悠闲饭团

学生信息系统(C语言)

用C语言编写的简单的学生信息管理系统,数据保存在文件中。程序中用到指针。

nan_fan
评论 4
收藏 已收藏
分享
返回顶部
jiamianshiye
C语言 70,039 成员 243,237 内容