代码之家  ›  专栏  ›  技术社区  ›  user297850

pdata1和pdata2有什么区别,构建如下

c c++
  •  0
  • user297850  · 技术社区  · 15 年前

    PData1和PData2的区别是什么,构建如下:

    pdata1=(int*)calloc(i,sizeof(int));

    int*pdata 2=(int*)calloc(i,sizeof(int));

    3 回复  |  直到 15 年前
        1
  •  1
  •   Justin Ethier    15 年前

    如果没有更多的信息,唯一的区别是 pData2 是分配的本地项,因为它声明为 int * . pData1 未声明,因此它必须具有更大的(全局?)范围并在其他地方定义。

        2
  •  1
  •   Steve314    15 年前

    第一个是(大概)对已经存在的名为“pdaa1”的变量的赋值。

    第二个声明一个名为“pdaa2”的新变量,并对其进行初始化。

    除此之外,我看不出有什么不同。

        3
  •  0
  •   paquetp    15 年前

    假设pdata1是一个指针(int*),它可以用*取消引用,并指向一个int,该int的值为0。 pdata2也将指向一个新的int,其值为零,但如果不先转换为指针,则不能取消引用,方法如下:

    *(int*)(pData2) = 4;
    

    你不能用类似的东西改变/得到pdata2指向的值。 *pData2 = 4;