malloc返回的是指针而不是地址,那应该在=后加个*才能变成地址,赋给指针变量p啊

malloc返回的是void*,需要转换下类型。
■网友
malloc函数会在内存中查找满足条件的连续内存单元,找到后会返回该连续内存单元的首地址,而这个地址会被存入相应的指针里,对指针进行解除引用后,就可以使用该内存单元了~另外,malloc函数的原型为 void *malloc(size_t size) ; 在内存中找到符合条件的内存单元后,返回的内存单元首地址要进行强制类型转换才能正确赋值给指向该类型的指针,即:int *p = (int *)malloc(sizeof(int)) ;此处还要留意sizeof(int)与sizeof(int *)的区别(通用点说是sizeof(type)与sizeof(type *)的区别),使用不当会掉进坑里哦~
■网友
C中的指针通常有两个意思1是指针变量的省略说法2地址所谓指针变量就是存放地址的变量。*运算是取内容运算,只能作用在地址上


    推荐阅读