zoukankan      html  css  js  c++  java
  • C++ pass array as pointer and increment the pointer to retrieve array data

    #include <iostream>
    #include <uuid/uuid.h>
    #include <ctime>
    #include <fstream>
    #include <sstream>
    #include <chrono>
    #include <string.h>
    
    using namespace std;
    
    void retrieveUuid1(char *uuidValue);
    char *getTimeNow();
    
    struct BookStruct
    {
        int BookId;
        string BookName;
        string BookTitle;
    };
    
    void getStructArrayViaRefPointer6(struct BookStruct *bsP);
    void retrieveStructArray7();
    void displayStructArray8(struct BookStruct *ptr);
    
    int main()
    {
        retrieveStructArray7();
        return 0;
    }
    
    void retrieveStructArray7()
    {
        struct BookStruct arr[100];     
        getStructArrayViaRefPointer6(arr); 
        displayStructArray8(arr);    
        cout << "Finished in retrieveStructArray7() and now is " << getTimeNow() << endl;
    }
    
    void displayStructArray8(struct BookStruct *ptr)
    {
        for(int i=0;i<100;i++)
        {
            cout<<"Index="<<i<<",Id="<<(ptr+i)->BookId<<",Name="<<(ptr+i)->BookName<<",Title="<<(ptr+i)->BookTitle<<endl;
        }
    }
    
    void getStructArrayViaRefPointer6(struct BookStruct *bsP)
    {    
        char *uuidValue=(char*)malloc(40);
        for (int i = 0; i < 100; i++)
        {
            bsP->BookId=i*i*i*i;          
            retrieveUuid1(uuidValue);
            bsP->BookName=uuidValue; 
            retrieveUuid1(uuidValue);
            bsP->BookTitle=uuidValue; 
            bsP++;
        } 
        free(uuidValue);
    }
    
    
    void retrieveUuid1(char *uuidValue)
    {
        uuid_t newUUID;
        uuid_generate(newUUID);
        uuid_unparse(newUUID, uuidValue);
    }
    
    char *getTimeNow()
    {
        char *dtValue = (char *)malloc(20);
        time_t rawTime = time(NULL);
        struct tm tmInfo = *localtime(&rawTime);
        strftime(dtValue, 20, "%Y%m%d%H%M%S", &tmInfo);
        return dtValue;
    }

    Compile

    g++ -g -std=c++2a -I. h1.cpp -o h1 -luuid

    Run ./h1

  • 相关阅读:
    Linux程序的执行
    Linux图形操作与命令行
    Linux网络配置
    Zip文件中文乱码问题解决方法(MAC->Windows)
    我只是一直很努力
    Android抓包方法(三)之Win7笔记本Wifi热点+WireShark工具
    Android抓包方法(二)之Tcpdump命令+Wireshark
    Android抓包方法(一)之Fiddler代理
    Android反编译(二)之反编译XML资源文件
    Android反编译(一)之反编译JAVA源码
  • 原文地址:https://www.cnblogs.com/Fred1987/p/15710366.html
Copyright © 2011-2022 走看看