您的位置首页生活百科

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

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、当成普通数组使用,用for循环即可赋值福小亚立销话季影但发。

2、例程:

#include<stdio.h>

#include<stdlib.h>

i西角跑有报迅态这ntmain(void)

{

int*a=NULL;

inti;

a=malloc(sizeof(int)*10);/*动态创建一个有10个in划序棉资的百象植也苏速t元素的数组*/

if(a只复结担操由盟宁唱父==NULL){/*a==NULL表示空间分配失败*/

fprintf(stderr,"MEMORYERROR");

return-1;

}

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

a[i]=i;某促安书导教解边样企/*对数组进行赋值操作*/

}

f操证染讨哥殖几通急ree(a);/*动态义三八界国题层年分配的空间需要用free()函数释放*/

return0;

}