69,371
社区成员
发帖
与我相关
我的任务
分享
#include "stdio.h"
#include "string.h"
#include <malloc.h>
#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),*p[LEN];
for (i=0;i<LEN;i++)
{
arry[i] = (int*)malloc(sizeof(int)*LEN);
p[i]=arry[i];
//初始化
memset(arry[i],0,sizeof(arry[i]));
}
//从文件读入两个变量
fp=fopen("data.txt","r");
while(fscanf(fp,"%d %d\n",&i,&num)!=EOF)
{
*arry[i]++=num;
}
fclose(fp);
//输出
for (i=0;i<LEN;i++)
{
for (j=0;i<10;j++)
{
printf("%d ",*(p[i]+j));
}
printf("\n");
}
}
//我感觉是这一段的操作符优先级影响的,改成这样试试?
while(fscanf(fp,"%d %d\n",&i,&num)!=EOF)
{
*(arry[i]++) = num;
}
//这里也不对
for (j=0;i<10;j++)
//在堆中开辟一个4×5的二维int数组
#include <stdio.h>
#include <malloc.h>
int **p;
int i,j;
void main() {
p=(int **)malloc(4*sizeof(int *));
if (NULL==p) return;
for (i=0;i<4;i++) {
p[i]=(int *)malloc(5*sizeof(int));
if (NULL==p[i]) return;
}
for (i=0;i<4;i++) {
for (j=0;j<5;j++) {
p[i][j]=i*5+j;
}
}
for (i=0;i<4;i++) {
for (j=0;j<5;j++) {
printf(" %2d",p[i][j]);
}
printf("\n");
}
for (i=0;i<4;i++) {
free(p[i]);
}
free(p);
}
// 0 1 2 3 4
// 5 6 7 8 9
// 10 11 12 13 14
// 15 16 17 18 19