帮忙看下这段程序

sasgsc 2010-11-10 12:29:57
#include<stdio.h>
int fill_array();
void print_array(int **integer);
int **integer;
void main() {
int **integer;
integer = fill_array(integer);
print_array(integer);
}
fill_array() {
integer = (int *)malloc(10* sizeof(int*));
int i = 0;
while(i < 4) {
integer[i] = (int *)calloc(4, sizeof(int));
integer[i][0] = 1;
integer[i][1] = 2;
integer[i][2] = 3;
i ++;
}
print_array(integer);
}
void print_array(int **integer) {
int row, col;
for(row = 0; row < 4; row ++)
for(col = 0; col < 3; col ++)
printf("%d ", integer[row][col]);
}


为什么不能运行
...全文
120 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sasgsc 2010-11-10
  • 打赏
  • 举报
回复
4楼的还是有问题
chaoliu1024 2010-11-10
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>

int fill_array(int** integer);
void print_array(int** integer);

int main(void)
{
int** integer;
integer = fill_array(integer);
print_array(integer);
return 0;
}

int fill_array(int** integer)
{
integer = (int*)malloc(10 * sizeof(int*));
int i = 0;
while (i < 4)
{
integer[i] = (int*)calloc(4, sizeof(int));
integer[i][0] = 1;
integer[i][1] = 2;
integer[i][2] = 3;
i ++;
}
print_array(integer);
return 0;
}

void print_array(int** integer)
{
int row, col;
for (row = 0; row < 4; row ++)
for (col = 0; col < 3; col ++)
printf("%d ", integer[row][col]);
}

可以运行了,但二级指针那还有问题,自己改改吧...
無_1024 2010-11-10
  • 打赏
  • 举报
回复

#include<stdio.h>
#include <malloc.h>

int** fill_array();//增加返回类型
void print_array(int **integer);

void main()
{
int **integer;
integer = (int **)malloc(10* sizeof(int**));//初始化
integer = fill_array();
print_array(integer);
}

int** fill_array()
{
int **integer;
integer = (int **)malloc(10* sizeof(int**));
int i = 0;
while(i < 4)
{
integer[i] = (int *)calloc(4, sizeof(int));
integer[i][0] = 1;
integer[i][1] = 2;
integer[i][2] = 3;
i ++;
}
//print_array(integer);//main函数里面已经有输出 可以去掉
return integer;//返回类型
}

void print_array(int **integer)
{
int row, col;
for(row = 0; row < 4; row ++)
{
for(col = 0; col < 3; col ++)
printf("%d ", integer[row][col]);
printf("\n");
}
}


try325 2010-11-10
  • 打赏
  • 举报
回复
还是自己动手编译一下,改一改,
wyfwx 2010-11-10
  • 打赏
  • 举报
回复
fill_array() 没有返回值,
integer为 无效指针
print_array(integer);于是挂了
Csuxiaowu 2010-11-10
  • 打赏
  • 举报
回复
一堆错误
#include<stdio.h>
int fill_array();
void print_array(int **integer);
int **integer;
void main() {
int **integer;
integer = fill_array(integer);//-----------这里有参数
print_array(integer);
}
fill_array() {//-----------返回值都没
integer = (int *)malloc(10* sizeof(int*));
int i = 0;
while(i < 4) {
integer[i] = (int *)calloc(4, sizeof(int));
integer[i][0] = 1;
integer[i][1] = 2;
integer[i][2] = 3;
i ++;
}
print_array(integer);
//-----------无返回值
}
void print_array(int **integer) {
int row, col;
for(row = 0; row < 4; row ++)
for(col = 0; col < 3; col ++)
printf("%d ", integer[row][col]);
}
leomsk 2010-11-10
  • 打赏
  • 举报
回复
#include<stdio.h>
int fill_array(int ***integer);
void print_array(int **integer);
void main() {
int **integer;
int i=0;
fill_array(&integer);
print_array(integer); //比较处1


for (i=0;i<4;i++)
{
free(integer[i]); //释放内存
}
free(integer); //释放内存

getchar();
}
fill_array(int ***integer) {
int i = 0;
*integer = (int **)malloc(10* sizeof(int*)); //申请内存

while(i < 4) {
(*integer)[i] = (int *)calloc(4, sizeof(int)); //申请内存
(*integer)[i][0] = 1;
(*integer)[i][1] = 2;
(*integer)[i][2] = 3;
i ++;
}
print_array(*integer); //比较处2
}
void print_array(int **integer) {
int row, col;
for(row = 0; row < 4; row ++)
{
for(col = 0; col < 3; col ++)
printf("%d ", integer[row][col]);
printf("\n");
}
}
leomsk 2010-11-10
  • 打赏
  • 举报
回复
#include<stdio.h>
int fill_array(int ***integer);
void print_array(int **integer);
void main() {
int **integer;
fill_array(&integer);
print_array(integer); //比较处1

getchar();
}
fill_array(int ***integer) {
int i = 0;
*integer = (int **)malloc(10* sizeof(int*));
while(i < 4) {
(*integer)[i] = (int *)calloc(4, sizeof(int));
(*integer)[i][0] = 1;
(*integer)[i][1] = 2;
(*integer)[i][2] = 3;
i ++;
}
print_array(*integer); //比较处2
}
void print_array(int **integer) {
int row, col;
for(row = 0; row < 4; row ++)
{
for(col = 0; col < 3; col ++)
printf("%d ", integer[row][col]);
printf("\n");
}
}
zhutianjin4355255 2010-11-10
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>

int fill_array(int** integer);
void print_array(int** integer);

int main(void)
{
int** integer;
integer = fill_array(integer);
print_array(integer);
return 0;
}

int fill_array(int** integer)
{
integer = (int*)malloc(10 * sizeof(int*));
int i = 0;
while (i < 4)
{
integer[i] = (int*)calloc(4, sizeof(int));
integer[i][0] = 1;
integer[i][1] = 2;
integer[i][2] = 3;
i ++;
}
print_array(integer);
return 0;
}

void print_array(int** integer)
{
int row, col;
for (row = 0; row < 4; row ++)
for (col = 0; col < 3; col ++)
printf("%d ", integer[row][col]);
}


内存没释放

sasgsc 2010-11-10
  • 打赏
  • 举报
回复
作为一个JAVA程序员 初学C语言...压力很大啊....

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧