69,335
社区成员
发帖
与我相关
我的任务
分享
#include "stdio.h"
#include <stdlib.h>
#include <time.h>
#include <string.h> /*使用memset需要这个头文件*/
#define LEN 100
main()
{
FILE *fp;
int i=0,j=0,k=0,num;
char line[15]={0};
//申请二维动态数组
int **arry=(int **)malloc(sizeof(int*)*LEN);
srand((unsigned)time(NULL)); /*这一句要放到数据定义语句之后*/
for (i=0;i<LEN;i++)
{
arry[i] = (int*)malloc(sizeof(int)*LEN);
//初始化
memset(arry[i],0,sizeof(int)*LEN); /*这里只能这样写,原来的写法获得的只是一个数组元素的尺寸,而那个元素是个指针,只有4字节大小*/
}
//赋值
for (i=0;i<100;i++)
{
for (j=0;j<10;j++)
{
*(arry[i]+j)=rand()%98+1;
}
}
//输出
for (i=0;i<LEN;i++)
{
for (j=0;j<10;j++) /*你把这里的循环终止条件写错了*/
{
printf("%d ",(arry[i])[j]); /*这是链式数组的另一种寻址方式,看起来更像访问数组的样子。*/
}
printf("\n");
}
}
for (i=0;i<100;i++)
{
for (j=0;j<10;j++)
{
*(arry[i]+j)=rand()%98+1;
}
}
for (i=0;i<LEN;i++)
{
for (j=0;i<10;j++)
{
printf("%d ",*(arry[i]+j));
}
printf("\n");
}
}