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地址所谓指针变量就是存放地址的变量。*运算是取内容运算,只能作用在地址上
推荐阅读
- 禄口■南京禄口国际机场要求成都旅客“原路返回”?机场回应
- C语言 指针引用数组的地址问题
- |南航专家解读嫦娥五号:怎样返回比“怎么挖”更有难度
- 一个页面的数据是一个接口返回好,还是分多次返回 \r \t\t\t?
- 嫦娥五号|嫦娥五号探测器成功发射 开启我国首次地外天体采样返回之旅
- 《C++ primer》(英文第五版)中讲到lambda的返回类型?
- glibc malloc/free是否高效
- pandas中DataFrame返回值问题为何总是一行
- 为啥C++的this是指针而不是引用
- C++没有返回值也可以运行