| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2450 人关注过本帖
标题:诚心请教,怎样生成动态二维数组???
只看楼主 加入收藏
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 


怎么回事>?
#include "stdio.h"
#include "conio.h"
#define W 5
#define H 10
main()
{
int **num=NULL;
int i,j;

num=(int *)malloc(H*W*sizeof(int));

for(i=0;i<H;i++)
for(j=0;j<W;j++)
{
num[i][j]=i+j;
}
for(i=0;i<H;i++)
for(j=0;j<W;j++)
{
printf("%2d ",num[i][j]);
}
getch();

}
这个程序在TC下没问题
在WIN-TC下就不行

2006-10-09 18:52
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 

/* HELLO.C -- Hello, world */

#include "stdio.h"
#include "conio.h"
#define W 5
#define H 10
main()
{
int **num=NULL;
int i,j;

num=(int *)malloc(W*sizeof(int));
*num=(int *)malloc(H*sizeof(int));


for(i=0;i<H;i++)
for(j=0;j<W;j++)
{
num[i][j]=0;
}
for(i=0;i<H;i++)
for(j=0;j<W;j++)
{
printf("%2d ",num[i][j]);
}
getch();

}
这个在哪个里面都出问题
而且问题相同!
输出没问题
但是最后说 : NULL pointer assignment

先去上课 晚上回来再想这个问题

2006-10-09 18:54
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 
这动态分配用得少,先谢谢大家。

谁有强殖装甲第二部,可以Q我460054868
2006-10-09 19:01
BlueDreame
Rank: 1
等 级:新手上路
帖 子:545
专家分:2
注 册:2004-12-16
收藏
得分:0 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int main(int argc, char* argv[])
{
int i, j;
int** p = (int**) malloc(10 * sizeof( int* ));
for(i = 0; i < 10; ++i)
{
p[ i ] = (int*) malloc(10 * sizeof( int ));
}

for(i = 0; i < 10; ++i)
{
for(j = 0; j < 10; ++j)
{
p[ i ][ j ] = j;
}
}

for(i = 0; i < 10; ++i)
{
for(j = 0; j < 10; ++j)
{
printf("%d ", p[ i ][ j ]);
}
putchar( '\n' );
}

for(i = 0; i < 10; ++i)
{
free( p[ i ] );
}
free( p );

printf("%d\n%s\n", argc, argv[ 0 ]);
printf("Press ENTER to exit...");
getchar();
return 0;
}

好像是这样的。编译、运行通过。


2006-10-09 19:04
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
以下是引用cdmalcl在2006-10-9 18:52:04的发言:


怎么回事>?
#include "stdio.h"
#include "conio.h"
#define W 5
#define H 10
main()
{
int **num=NULL;
int i,j;

num=(int **)malloc(H*W*sizeof(int));

for(i=0;i<H;i++)
for(j=0;j<W;j++)
{
num[i][j]=i+j;
}
for(i=0;i<H;i++)
for(j=0;j<W;j++)
{
printf("%2d ",num[i][j]);
}
getch();

}
这个程序在TC下没问题
在WIN-TC下就不行


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-10-09 19:20
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
只有14楼的是对的

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2006-10-09 19:51
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
以下是引用SunShining在2006-10-9 19:20:04的发言:

num=(int **)malloc(H*W*sizeof(int));
有 运行结果也是一样

(老师讲的真恶不上了)

2006-10-09 20:28
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 

/* HELLO.C -- Hello, world */

#include "stdio.h"
#include "conio.h"
#define W 5
#define H 10
main()
{
int **num=NULL;
int i,j;

num=(int **)malloc(H*sizeof(int));

for(i = 0; i < H; ++i)
{
*(num+i)=(int *)malloc(W*sizeof(int));
}

for(i=0;i<H;i++)
for(j=0;j<W;j++)
{
num[i][j]=i+j;
}
for(i=0;i<H;i++)
for(j=0;j<W;j++)
{
printf("%2d ",num[i][j]);
}

getch();

}

学习了!!

2006-10-09 20:51
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
以下是引用Knocker在2006-10-9 19:51:05的发言:
只有14楼的是对的

#include "stdio.h"
#include "conio.h"
#define W 5
#define H 10
main()
{
int *num=NULL;
int i,j;

num=(int *)malloc(H*W*sizeof(int));

for(i=0;i<H;i++)
for(j=0;j<W;j++)
{
*(num+i*H+j)=i;
}
for(i=0;i<H;i++)
for(j=0;j<W;j++)
{
printf("%2d ",*(num+i*H+j));
}
}

老K.这样不行吗?
我也感觉纳闷.在TC下这样没问题.可是在C-FREE下...他就没反映了,(编译通过.但什么也不做)
想了半天也没想通.难道是malloc没有分配成功?


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-10-10 08:26
qiuhai1985
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-10-9
收藏
得分:0 

我用的是C++;
int *piArray;
cout<<"请输入数组的大小:";
cin>>num;
piArray = new int[num];


编织美好得未来!!! COME ON SEA!!!
2006-10-10 09:19
快速回复:诚心请教,怎样生成动态二维数组???
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.081612 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved