• 在QT函数中返回一个数组/把一个数组传参给函数


    1.把数组传参给函数
    可以定义一个QVector的一个数组
    QVector<int> num(10);
    for(int  i =0;i<10;i++)
    num [i] = i*i;
    fun(num); //直接传参数给fun(函数)

    void fun(QVector<int> num)
    {
       for(int i = 0;i<10;i++)
        qDebug()<<num[i];
    }

    2.函数返回一个数组

    首先在c++中是不允许数组作为函数的返回值的 

    在我刚开始使用返回数组时,直接返回去一个数组,让一个指针去接收,如下:(错误的写法)

    int* mainWindow::data()

    {

       int  tx[] = {    //要发送的数据数组
                            0xA2, 0x00, 0x00,
                            0xA2, 0x00, 0x00,
                            0xA2, 0x00, 0x00,
                            0xA2, 0x00, 0x00,
                            0xA2, 0x00, 0x00,
                            0xA2, 0x00, 0x00,
                            0xA2, 0x00, 0x00,
                            0xA2, 0x00, 0x00,
                            0xA2, 0x00, 0x00,
                            0xA2, 0x00, 0x00,
                       };

     return  tx;

    }

    然后用指针接收

    int *p = data();

    qDebug()<<p[0];

    发现在运行的时候会出现段错误,发现很多C语言都是这样写的,并没有错。

    后来发现c++中是不允许数组作为函数的返回值的 

    正确的做法是:

    #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
    int* mainWindow::data()
    {
       int  tx[] = {    //要发送的数据数组
                            0xA2, 0x00, 0x00,
                            0xA2, 0x00, 0x00,
                            0xA2, 0x00, 0x00,
                            0xA2, 0x00, 0x00,
                            0xA2, 0x00, 0x00,
                            0xA2, 0x00, 0x00,
                            0xA2, 0x00, 0x00,
                            0xA2, 0x00, 0x00,
                            0xA2, 0x00, 0x00,
                            0xA2, 0x00, 0x00,
                       };
    
      int* temp = new int[ARRAY_SIZE(tx)];
      for ( int i =0; i < ARRAY_SIZE(tx); i++)
      temp[i] = (int)rx[i];
       return temp;
    }
    
    int  *p = data();
    qDebug()<<p[0];
    delete p;
  • 相关阅读:
    js中关于undefined值的判断
    解决flexpaper搜索文字时不能高亮的问题
    计算出当月还剩下几天
    仿新浪微博返回顶部的js实现(jQuery/MooTools)
    使用Javascript计算时间差和计算日期加天数后的日期值
    小tip:iframe高度动态自适应
    JQuery之ContextMenu(右键菜单)
    JS的split函数用法
    jquery context menu用法
    jQuery实现搜索关键字自动匹配提示方法
  • 原文地址:https://www.cnblogs.com/wxh-53919/p/10709140.html
Copyright © 2020-2023  润新知