结构体二级指针的内存分配
#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语言中使用指针的能力。
指针在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语言编写的简单的学生信息管理系统,数据保存在文件中。程序中用到指针。


