社区
C语言
帖子详情
二维结构体数组名做参数的函数调用问题。
newline
2002-07-23 07:23:32
二维结构体数组定义为
struct Luv
{
float L;
float u;
float v;
} LuvArray[1000][1000];
欲定义一个函数Normalize(定义参数),
使得调用Normalize(调用参数),对数组进行操作。
请问其中的定义参数和调用参数应该怎么写?
...全文
293
4
打赏
收藏
二维结构体数组名做参数的函数调用问题。
二维结构体数组定义为 struct Luv { float L; float u; float v; } LuvArray[1000][1000]; 欲定义一个函数Normalize(定义参数), 使得调用Normalize(调用参数),对数组进行操作。 请问其中的定义参数和调用参数应该怎么写?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
newline
2002-07-24
打赏
举报
回复
感谢大家,尤其感谢秋水沉舟,帖子分不多,可回答得很详细,令人感动。
哦,程序在BCB6下编译通过,没问题。
ibmer
2002-07-23
打赏
举报
回复
用一维或者二维指针都可以,最好用二维指针,因为实参是二维数组的名称,是个二维指针:
struct Luv
{
float L;
float u;
float v;
} LuvArray[1000][1000];
void Normalize(Luv** ptr,int i,int j)
{
for(int ii=0;ii<i;ii++)
for(int jj=0;jj<j;jj++)
{
ptr[ii][jj]...
.......
}
}
main()
{
Normalize(LuvArray,1000,1000);
......
}
wlz47
2002-07-23
打赏
举报
回复
void Normalize(struct Luv par[][1000])
更好更复杂的方法是用模板:
template<int size1, int size2>
void Normalize(Luv (&array)[size1][size2])
{...}
这样对任意二维数组(不过是1000×1000,还是5×7,或是别的)都可以使用该Normalize函数
不过要注意的是上述模板函数的顺利通过要在编译器对C++标准支持的比较好才行,VC6下可能就通不过编译,更不用说别的古董级编译器了
下面是例子和测试:编译器为g++,编译环境为Dev-C++ 4.9.4.1
#include <iostream>
#include <stdlib.h>
using namespace std;
struct Luv
{
float L;
float u;
float v;
};
template<int size1, int size2>
void Normalize(struct Luv (&array)[size1][size2])
{
for(int i=0; i<size1; ++i)
for(int j=0; j<size2; ++j)
{
array[i][j].L = 1.0;
array[i][j].u = 1.0;
array[i][j].v = 1.0;
}
}
const int DIM1 = 3;
const int DIM2 = 5;
int main()
{
Luv sl[DIM1][DIM2]; // DIM1 × DIM2 的二维数组
Normalize(sl);
for(int i=0; i<DIM1; ++i)
for(int j=0; j<DIM2; ++j)
cout << "sl[" << i << "][" << j << "] = {"
<< sl[i][j].L << ", "
<< sl[i][j].u << ", "
<< sl[i][j].v << "}\n" ;
system("PAUSE");
return 0;
}
再次强调,由于对C++标准支持的不够好,VC6下上述代码不能通过编译,VC7也许可以,不过偶没试过
天外飞狐
2002-07-23
打赏
举报
回复
用一个二级指针来操作
Java调用C语言动态库(JNA方式):回调函数、
结构体数组
传参、
结构体数组
返回-附件资源
Java调用C语言动态库(JNA方式):回调函数、
结构体数组
传参、
结构体数组
返回-附件资源
python通过ctypes调用c,python向c函数通过结构体传递python回调函数指针,c回调python
python向c函数传递
二维
数组,一维数组,指针灯
参数
;python向c函数传递结构体指针,c函数向python返回结构体指针;python向c以
参数
形式传递回调函数,且c函数回调python回调函数;python向c以
参数
形式传结构体指针,...
青少年C++编程NOIP/CSP竞赛通关语法-
二维
数组
1、本课程为零基础C++语法专题课,是青少儿参加信息学奥赛NOIP/CSP需要学习的语法专题课; 2、本课程每节课均配有练习题以及真题,以锻炼孩子的解题能力;... 6、本课程介绍的是
二维
数组。也是历来竞赛重要考点。
计算机语言中c/c++的基础入门学习代码记录(适应于计算机二级)
04
二维
数组;05字符数组和字符串;06字符串比较) 6.函数(01随机数;02函数定义使用;03函数类型;04函数值传递;05
函数调用
;06嵌套调用;07函数递归传递;08局部变量和全局变量) 7.编译预处理(01无
参数
;02有...
C程序设计(第四版)学习辅导【谭浩强】
6.2.2怎样引用
二维
数组的元素151 6.2.3
二维
数组的初始化152 6.2.4
二维
数组程序举例153 6.3字符数组155 6.3.1怎样定义字符数组155 6.3.2字符数组的初始化156 6.3.3怎样引用字符数组中的元素156 6.3.4字符串和字符串...
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章