c struct struct array,pointer,uuid,memcpy

复制代码
#include <stdio.h>
#include <stdlib.h>
#include <uuid/uuid.h>
#include <string.h>


void retrieveUuid(char *uuidValue)
{
    uuid_t newUUID;
    uuid_generate(newUUID);
    uuid_unparse(newUUID, uuidValue);
}


struct BookStruct
{
    int BookId;
    char *BookAuthor;
    char *BookISBN;
};
 
struct BookStruct *arrayPointer4();
void structPointer5();

int main()
{
    structPointer5();
}

void structPointer5()
{
    struct BookStruct *bsp;
    bsp=arrayPointer4();
    for(int i=0;i<100;i++)
    {
        printf("Id=%d,Author=%s,ISBN=%s\n",(bsp+i)->BookId,(bsp+i)->BookAuthor,(bsp+i)->BookISBN);
    }
}


struct BookStruct *arrayPointer4()
{
    static struct BookStruct arr[100];
    char *msg = (char *)malloc(40);
    for (int i = 0; i < 100; i++)
    {
        struct BookStruct bs;
        bs.BookAuthor = (char *)malloc(40);
        bs.BookISBN = (char *)malloc(40);
        retrieveUuid(msg);
        memcpy(bs.BookAuthor,msg,40);
        retrieveUuid(msg);
        memcpy(bs.BookISBN,msg,40);
        bs. BookId=i*i*i*i;
        arr[i]=bs;
    }
    free(msg);
    struct BookStruct*bsp=&arr;
    return bsp;
}
复制代码

 

 

复制代码
void charArr8()
{
    char **p=charArray7();
    for(int i=0;i<100;i++)
    {
        printf("I=%d,value=%s\n",i,*(p+i));
        free(*(p+i));
    }
}

char **charArray7()
{
    static char * arr[100];
    char *msg=(char*)malloc(40);
    for(int i=0;i<100;i++)
    {
        arr[i]=(char*)malloc(40);
        retrieveUuid(msg);
        memcpy(arr[i],msg,40);
    }

    free(msg);
    char **p;
    p=&arr;
    return p;
}
复制代码

 

 

复制代码
struct BookStruct* structP10();
void structP11();

int main()
{
    structP11();
}

void structP11()
{
    struct BookStruct *p=structP10();
    for(int i=0;i<100;i++)
    {
        printf("I=%d,Author=%s,ISBN=%s\n",(p+i)->BookId,(p+i)->BookAuthor,(p+i)->BookISBN);
        free((p+i)->BookAuthor);
        free((p+i)->BookISBN);
    }
}

struct BookStruct* structP10()
{
    static struct BookStruct arr[100];
    char *msg=(char*)malloc(40);
    for(int i=0;i<100;i++)
    {
        struct BookStruct bs;
        bs.BookId=i*i*i*i;
        bs.BookAuthor=(char*)malloc(40);
        bs.BookISBN=(char*)malloc(40);
        retrieveUuid(msg);
        memcpy(bs.BookAuthor,msg,40);
        retrieveUuid(msg);
        memcpy(bs.BookISBN,msg,40);
        arr[i]=bs;
    }

    struct BookStruct*p;
    p=arr;
    free(msg);
    return p;
}
复制代码

 

 

 

posted @   FredGrit  阅读(57)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2019-11-20 C# event
2016-11-20 附加数据库失败,操作系统错误 5:"5(拒绝访问。)"的解决办法
点击右上角即可分享
微信分享提示