c语言三维数组的函数调用 c语言自定义函数调用一维数组

用C语言,动态三维数组

1、先说二维,可以这么理解:

十年的大厂网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都营销网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整大厂建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“大厂网站设计”,“大厂网站推广”以来,每个客户项目都认真落实执行。

int n[3]有3个int

那么,

int m[5][3]有5个int[3]

赋值时:

n[1]=3把3给1号

m[4]={5,9,4}m[4]是个int[3]类型,这么赋值,也就是这么赋值:

m[4]的[0]是5:m[4][0]=5

m[4][1]=9

m[4][2]=4

懂了吗?三维甚至更多维大同小异,比如

int k[4][5][3]有4个int[5][3]

2、例程:

int*** CreateGrid(int m,int n,int t)

{

int*** tt = NULL; 

tt = (int***)malloc(sizeof(int)*m);

for(int i=0;im;i++)

{

tt[i] = (int**)malloc(sizeof(int)*n);;

for (int k=0;kn;k++)

{

tt[i][k] = (int*)malloc(sizeof(int)*t);

}

}

return tt;

}

void FreeGrid(int*** tt,int m,int n,int t)

{

if(tt != NULL)

{

for(int i=0;im;i++)

{

for (int j=0;jn;j++)

{

free((tt[i][j]));

}

free(tt[i]);

}

free(tt);

tt = NULL;

}

}

C语言 用指针生成一个三维数组,用main调用另一个函数,该指针作为参数。

示例代码:

#include stdio.h

#include stdlib.h

int main()

{

//有效部分

int ***p = (int***)malloc(sizeof(int**)*3);

for (int i = 0; i  3; ++i){

p[i] = (int**)malloc(sizeof(int*) * 4);

}

for (int i = 0; i  3; ++i){

for (int j = 0; j  4; ++j){

p[i][j] = (int*)malloc(sizeof(int) * 5);

}

}

//有效部分完

//下面内容为测试

for (int i = 0; i  3; ++i){

for (int j = 0; j  4; ++j){

for (int k = 0; k  5; ++k){

p[i][j][k] = i + j + k;

}

}

}

for (int i = 0; i  3; ++i){

for (int j = 0; j  4; ++j){

for (int k = 0; k  5; ++k){

printf("%d\t", p[i][j][k]);

}

printf("\n");

}

printf("\n");

}

return 0;

}

C语言指针定义三维不规则数组

#includestdio.h

void check(int * * *ppp) {

printf("三维数组Begin:{\n");

printf("{ %d,%d,\n", ppp[0][0][0], ppp[0][0][1]);

printf("%d,%d,%d,%d,\n", ppp[0][1][0], ppp[0][1][1], ppp[0][1][2], ppp[0][1][3]);

printf("%d,%d,%d,%d,%d },\n", ppp[0][2][0], ppp[0][2][1], ppp[0][2][2], ppp[0][2][3], ppp[0][2][4]);

printf("\n");

printf("{ %d,%d,%d,%d,%d,\n", ppp[1][0][0], ppp[1][0][1], ppp[1][0][2], ppp[1][0][3], ppp[1][0][4]);

printf("%d,%d,%d,%d },\n", ppp[1][1][0], ppp[1][1][1], ppp[1][1][2], ppp[1][1][3]);

printf("\n");

printf("{ %d,%d,\n", ppp[2][0][0], ppp[2][0][1]);

printf("%d,%d,%d,\n", ppp[2][1][0], ppp[2][1][1], ppp[2][1][2]);

printf("%d,%d,%d,\n", ppp[2][2][0], ppp[2][2][1], ppp[2][2][2]);

printf("%d },\n", ppp[2][3][0]);

printf("} //三维数组End\n");

}

void main()

{

//一维

int a1[]={1,11}; 

int a2[]={2,22,222,2222};

int a3[]={3,33,333,3333,33333};

int a4[]={4,44,444,4444,44444};

int a5[]={5,55,555,5555};

int a6[]={6,66};

int a7[]={7,77,777};

int a8[]={8,88,888};

int a9[]={9};

//二维

int * b1[]={a1,a2,a3};

int * b2[]={a4,a5};

int * b3[]={a6,a7,a8,a9};

//三维

int ** a[] = {b1,b2,b3};

check(a);

}

c语言,如何用指针向函数传递一个三维数组,并在函数内用该指针改变三位数组内的任意一值,新手求解

void fun(a,10) 将数组a的首地址赋给指针s

int i; i 计的是这数组中有几个字母

for (;*s;s++) 每循环一次,s后移一位,判断结束循环的条件s指向的内容为" \0 "

{

if(*s='a'*s='z'||*s='A'*s='Z') 

i++;

}

C语言生成随机数放到三维数组中 把这个功能弄成一个子函数 这个子函数怎么写

三维数组可以按一维排列。

下面是完整程序和调用例子:

#include stdio.h

#include time.h

void rr(int *a, int n){

int i;

for (i=0;in;i++) a[i]=rand();

}

main( ){

int a[2][3][4];

int i,j,k;

srand(time(NULL)); //种子

rr(a[0][0][0],2*3*4); //调用

for (k=0;k2;k++){

for (j=0;j3;j++){

for (i=0;i4;i++)printf("%d ",a[k][j][i]); //输出

printf("\n");

}

printf("\n");

}

return 0;

}

如何用C语言实现三维

最简单的做法是在结构体里存函数指针,然后初始化结构体的时候将函数的地址赋值给它。

复杂一点的,就得按照c++的多态原理,用虚函数表(其实就是能记录函数名对应的函数地址就好)记录每种结构体的成员函数地址,然后每个结构体里多存一个虚函数表的地址。。。然后调用函数的时候查到函数地址强转成函数类型然后调用。。。这个可以自己研究一下c++的虚函数表机制。


网站栏目:c语言三维数组的函数调用 c语言自定义函数调用一维数组
标题URL:http://ybzwz.com/article/hhopjh.html