| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 893 人关注过本帖
标题:关于 参数传递 的问题
取消只看楼主 加入收藏
schoolbug
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2008-5-1
收藏
 问题点数:0 回复次数:2 
关于 参数传递 的问题
我以这样的方式定义了一个二维数组
    int  **c;   
        
    c = (int   **)malloc(MAX_NUM_OF_NODE*sizeof(int   *));   
        
    for(int i=0; i<(MAX_NUM_OF_NODE); i++)   
        {
            c[i]=(int   *)malloc(MAX_NUM_OF_NODE*sizeof(int));
        }   
接下来我有一个函数,函数要用到c[][]来存储数据,那么我声明函数的时候(比如叫read函数)

              read(int c[][])   
还是
              read(int **c) 呢?

实验了一下  后者可以,前者不可以,为什么呢?c语言中不是 定义了二维数组,则数组名就是 **型指针么?
没搞懂,大家指教
搜索更多相关主题的帖子: int 参数 NODE MAX NUM 
2008-05-07 21:53
schoolbug
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2008-5-1
收藏
得分:0 
但是下面的程序编译成功,并且输出也正确啊,我是声明为f(int **c)的
为什么呢?

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

void f(int **c)
{
    for(int i=0; i<10; i++)
    {
        for(int j=0; j<10; j++)
        {
            c[i][j] = 1;
        }
    }
}

int main()
{



        int  **c;   
        
    c = (int   **)malloc(10*sizeof(int   *));   
        
    for(int i=0; i<10; i++)   
        {
            c[i]=(int   *)malloc(10*sizeof(int));
        }   


    f(c);

    for(int k=0; k<10; k++)
    {
        for(int l=0; l<10; l++)
        {
            printf("%d",c[k][l]);
        }
    }

    return 0;

}
2008-05-08 02:17
schoolbug
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2008-5-1
收藏
得分:0 
还有,用这样方法
 int  **c;   
        
    c = (int   **)malloc(MAX_NUM_OF_NODE*sizeof(int   *));   
        
    for(int i=0; i<(MAX_NUM_OF_NODE); i++)   
        {
            c[i]=(int   *)malloc(MAX_NUM_OF_NODE*sizeof(int));
        }   

定义数组时候  ,怎么初始化数组?
2008-05-08 02:22
快速回复:关于 参数传递 的问题
数据加载中...
 
   



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

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