zoukankan      html  css  js  c++  java
  • 小代码

    ------常常因为自己不够优秀而感到恐慌~

    记录两个简单易忘的代码:

    1. 如何使用new/delete分配二维数组

    当然也可以用malloc和vector。

    #include <iostream>
    using namespace std;
    
    int main() {
        int nrows=3,ncolumns=4;
        int **parr2D = new int*[nrows];
        
        for(int i=0;i<nrows;++i)
        {
            parr2D[i]=new int[ncolumns];
        }
        
        int k = 0;
        for (int m=0;m<nrows;m++)
        {
            for (int n=0;n<ncolumns;n++)
            {
                parr2D[m][n]=k++;
                cout<<parr2D[m][n]<<" ";
            }
            cout<<endl;
        }
        
        for(int i=0;i<nrows;++i)
        {
            delete parr2D[i];
        }
        
        delete []parr2D;
        parr2D = NULL;
        
        cout<<endl;
        return 0;
    }

    2. 数据的简单封包解包示例

    #include <stdio.h>
    #include <string.h>
    
    typedef char                s8;
    typedef unsigned char       u8;
    typedef short               s16;
    typedef unsigned short      u16;
    typedef int                 s32;
    typedef unsigned    int     u32;
    typedef float               f32;
    typedef signed long long    s64;
    typedef unsigned long long  u64;
    
    int main() {
        const int N = 12;
        u8 send_buf[N];
    
       
        send_buf[0] = 0x7e; //帧头2字节
        send_buf[1] = 0x7e;
        send_buf[2] = 0x16; //整包长度,4字节
        *(u16 *)(&send_buf[6]) = 0x0029;      //源地址 2字节
        *(u16 *)(&send_buf[8]) = 0x0085;      //目的地址2字节
        send_buf[10] = 0x0D;
        send_buf[11] = 0x0A;
        
        u8 recv_buf[N]; //包头+数据长度
        memcpy(recv_buf,send_buf,sizeof(u8)*N);
        
        u16 head = *(u16*)(&recv_buf[0]);
        u32 headLen = *(u16*)(&recv_buf[2]);
        u16 srcAddr = *(u16*)(&recv_buf[6]);
        u32 dstAddr =  *(u16*)(&recv_buf[8]);
        u8 tail1 = *(u8*)(&recv_buf[10]);
        u8 tail2 = *(u8*)(&recv_buf[11]);
        
        
        printf("head:%x
    ",head);
        printf("headLen:%x
    ",headLen);
        printf("srcAddr:%x
    ",srcAddr);
        printf("dstAddr:%x
    ",dstAddr);
        printf("tail1:%x
    ",tail1);
        printf("tail2:%x
    ",tail2);
        
        return 0;
    }
  • 相关阅读:
    前进篇
    2014年12月14日记
    转载了两篇别人写的话语
    想好了,也决定了
    活着
    c#字典排序
    插值转向
    unity手游使用terrian注意事项
    委托delegate 泛型委托action<> 返回值泛型委托Func<> 匿名方法 lambda表达式 的理解
    推荐博客关于uniy
  • 原文地址:https://www.cnblogs.com/shuqingstudy/p/10289703.html
Copyright © 2011-2022 走看看