欢迎访问 生活随笔!

凯发k8官方网

当前位置: 凯发k8官方网 > 编程语言 > c/c >内容正文

c/c

在qt中用c语言数组,在qt函数中返回一个数组/把一个数组传参给函数 -凯发k8官方网

发布时间:2024/10/8 c/c 0 豆豆
凯发k8官方网 收集整理的这篇文章主要介绍了 在qt中用c语言数组,在qt函数中返回一个数组/把一个数组传参给函数 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1.把数组传参给函数

可以定义一个qvector的一个数组

qvector num(10);

for(int  i =0;i<10;i )

num [i] = i*i;

fun(num); //直接传参数给fun(函数)

void fun(qvector num)

{

for(int i = 0;i<10;i )

qdebug()<

}

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()<

发现在运行的时候会出现段错误,发现很多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()<

delete p;

总结

以上是凯发k8官方网为你收集整理的在qt中用c语言数组,在qt函数中返回一个数组/把一个数组传参给函数的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发k8官方网网站内容还不错,欢迎将凯发k8官方网推荐给好友。

网站地图