关于gc

    目前成熟的工业语言java和c#都有非常成熟的垃圾回收机制。

    另外一个成熟的oop语言c++和c发展到目前都没有gc机制,以前非常不解。只到最近看了go语言,才粗略地明白一些原因 。

    go语言有自己的gc机制,也有指针技术,但是go语言中不允许对指针进行加减法等数学运算,即一个指针只能指向某个地址,类似于C中的type * const ptr类型的固定地址指针。

    而在C中,它灵活的允许码农们对指针进行甲减运算,因为指针本质就是一个数值。示例有如下代码:

    char* str = (char*)malloc(16 * sizeof(char));

    ...;

    str += 4;

    像这种自由指针str如果被回收了,C中如何判断该回收多少size的内存?

    所以依照个人愚见,如果要在C中使用gc技术,应该也像go那样,gc只回收type * const ptr类型的固定地址指针,应该是可行的。

猜你喜欢

转载自blog.csdn.net/menggucaoyuan/article/details/41677705