问个简单的C语言问题,关于指针的

问个简单的C语言问题,关于指针的,第1张

一般嵌入式编程才会直接给指针赋值 *** 作地址

//假设程序不会出错,也是作者的本意

void main() {

int *p = (int*)0x0//p指向0x00地址的内存

p[0] = 0x01//给p指向的地址0x00赋值为0x01

p[1] = 0x02//给p地址的下一个地址0x01赋值为0x02

p[3] = 0x03给p地址的下三个地址 0x03赋值为0x03

}

其实一般呢,直接p指向0x00在linux下是NULL指针,这时候P[0] *** 作是非法的的,无法访问,导致段错误

另外,指针类型直接用[]访问,会有警告的。

一般是通过malloc在堆中分配一片连续地址,然后通过*(p+1)这样的形式给该地址赋值

getenv()返回字符串指针。函数原型是: char * getenv(const char *name)

通过环境变量的名字获取值。用整形打印当然是数字了,因为它是指针。你换成%s打印试试。

环境变量里面没有这个名字。

你确定警告是对的这行代码吗?


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8536121.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-17
下一篇2023-04-17

发表评论

登录后才能评论

评论列表(0条)

    保存