您的位置 首页 百科知识

C语言如何给用函数二维数组动态赋值

问题补充说明:#include int main(void){ int cal(int **a, int i); void scan(int **a, int i); int choose,sum; int a1[1][1], a2[2][2], a3[3][3], a4[4][4], a5[5][5],a6[6][6] ; printf("请输入矩阵的行数 大于等于1 小于等于6\n"); scanf("%d", &choose); switch (choose) { case 1:scan(a1, 1); sum = cal(a1, 1); break; case 2:scan(a2, 2); sum = cal(a2, 2); break; case 3:scan(a3, 3); sum = cal(a3, 3); break; case 4:scan(a4, 4); sum = cal(a4, 4); break; case 5:scan(a5, 5); sum = cal(a5, 5); break; case 6:scan(a6, 6); sum = cal(a6, 6); break; default:printf("输入有误\n"); } printf("结果为:%d\n", sum); return 0;}int cal(int **a,int i){ int sum=0,m,n; for (m = 0; m < i - 1; m++) {哗互糕就蕹脚革协宫茅 for (n = 0; n < i - 1; n++) { if (m + n == i) { break; } else { sum += a[m][n]; } } } return sum;}void scan(int **a,int i){ int m,n; for (m = 0; m < i; m++) { for (n = 0; n < i; n++) { scanf("%d",&a[m][n]); } }}改成scanf("%d",*(a+m)+n);也不好使调试时候提示:0x0F7CC28C (msvcr120d.dll) (ConsoleApplication2.exe 中)处有未经处理的异常: 0xC0000005: 写入位置 0xCCCCCCCC 时发生访问冲突。想问下怎么用函数给二维数组赋

C语言如何给用函数二维数组动态赋值

1、当成普通数组使用,用fo吗减刻统娘r循环即可赋值。

2、例程:

#include

#include

intmain(void)

{

int*a=NULL;

inti;

a=malloc(sizeof(int)*10);/*动态创建一个有10个int元素的数组*/

i来自f(a==NULL)备步似倒{/*a==NULL层刑操表示空间分配失败*/

fprintf(stderr,"MEMORYERROR");

return-1;

}

for(i=0;i<10;i++){

a[i]=i;/*对数组进行赋值操作*/

}

free(a);/*动态分配的空间需要用free()函数释放*/

return0;

}

上一篇 如何调动员工的积来自极性?
下一篇 帝国时代2征服者专用秘籍
扫一扫,手机访问

扫一扫,手机浏览