Archive for 九月, 2014

深入理解C/C++形参、传指针、传引用

一则经典的问题:

//为了突出程序主要目的,忽略了malloc()分配是否成功检查与free()相关逻辑
//这是第一段代码
struct test {
    int num;
};

void change_value(struct test *out)
{
    struct test *in = (struct test *)malloc(sizeof(struct test));
    in->num = 100;
    out = in;
    printf("in num:%d\n",out->num);
}

int main()
{
    struct test *out = (struct test *)malloc(sizeof(struct test));
    out->num = 0;

    change_value(out);

    printf("out num:%d\n",out->num);
    return 0;
}

Read More →

Empire Problem

上周以前大学同学分享探讨了一个编程问题,觉得还是挺有典型意义的(解法与题意理解上)。故在此记录下。

Problem
The empire has a capitol and a number of cities. Some cities are connected to other cities. A route connecting two cities can transport a message in both directions. All cities are reachable using some path from the capitol city. The connections among all cities are described in an adjacency matrix with the format shown below. At the start, a message is sent from the capitol city to all other cities, and we want to know what’s the minimal time for a message to spread out from the capitol to the whole empire.
Read More →