指针错误

C语言指针一些常见的错误用法 指针用的好犹如神助,用不好会让你叫苦连连,但大多数人是用不好指针的,所以后来的很多语言都把指针封装,屏蔽。比如JAVA,java是没有指针的,但是很多地方都用到指针,不过不对用户开放,语言的自身机制帮用户处理指针的分配释放,为的就是方便用户使用,减少错误。不过我们不能因噎废食,指针虽难,但学好了会大大提升你的编程能力。 下面来列举一下在学习过程中指针的常见错误。 1.指针指针... 阅读详情

int main()
{
 int a[10]={1,2,3,4,5,6,7,8,9,10};
 int *p,*q;

 int j;
 p=&a[0];
 q=&a[0];
 for(int i=0;i<7;i++)
 {
  srand(time(0));
 j=1+rand()%9;
 cout<<"j= "<<j<<endl;
 cout<<"first *p ="<<*p<<endl;
 cout<<"first *q ="<<*q<<endl;
 p=&a[j];
 cout<<"after *p ="<<*p<<endl;
 cout<<"after *q ="<<*q<<endl;
 if(q==p)
  cout<<"OVER!"<<endl;

}

return 0;

}

 

 

如果if中是 p=q ,结果会这样呢?在first那里是一样的!

【C语言】使用指针时出现的各种错误总结以及处理方法 本文讲述的是使用指针时出现的各种错误总结以及相应的处理方法。 阅读详情

相关推荐

指针常见错误

1 引用未初始化的指针错误 如果指针变量未初始化,那么编译器会让他指向一个固定的,不用的地址。 #include<stdio.h> int main(void) { int *p, *q; printf("p = %#x\n", p); printf("q = %#x\n", q); return 0; } 2 往一个存放NULL地址的指针变量里面写入数据 #include&...

人生代码 ---- 公众号 938

链表指针容易犯的错误

往链表中插入一项时,如果指针使用不慎,容易造成错误。下面先看一段正确的代码:代码的功能是:往一个空链表中插入三项,每一项的元素分别是0,1,2。#include #include typedef struct _Node{    int elem;    struct _Node *next;}Node;int main(){    Node *list = NULL;    Node *tail = NULL;    for (int i=0; i    {        Node *p = (Node

tangbo1987的专栏 1299

轴承寿命预测 | 基于BiLSTM双向长短期记忆神经网络的轴承寿命预测附matlab完整代码

轴承寿命预测 | 基于BiLSTM双向长短期记忆神经网络的轴承寿命预测附matlab完整代码

默默科研仔的博客 240

c语言中指针常见的错误

指针使用在c/c++中 指针在c/c++中非常强大 但是初学者使用经常带来一些错误 以下整理博主自己在开发过程中 存在的一些错误点 // 1. 存储数据时,越界 void test01() { // 1. 数组操作越界 char name[] = "googleyst"; printf("%c", name[100]); // 2. 指针不断操作导致越界 ...

weixin_46048117的博客 617

指针的几个错误写法

在子函数和主函数数据交换过程中,有时会出现子函数数据改变但主函数数据仍旧不变的情况,下面是几种错误的写法 错误一 没有传指针,不传指针,子函数的改变无法影响到主函数 void Swap(int a,int b) { int tmp = a; a = b; b = tmp; } 错误二 传了指针,但没有进行解引用,仍旧无法改变主函数的值 void Swap(int *p1,i...

weixin_45774953的博客 240

关于指针错误的问题

<br />最近在程序中遇到指针所调用的函数不是写的函数,如程序执行到 p -> SetName(),指针p调用的不是SetName(),而是其他的函数或者不是我想要的某个类中的SetName().这种错误一般是堆栈的错误,现在发现引起这个错误的两个原因如下:<br /> <br />1. 链接引起的,把所在的工程和相关联的工程clean后,重新编译就可以解决。<br /> <br />2.指针的强制转换引起的,比如 p想调用A类的这个SetName(),但 p 现在确是 B类的指针,这样就会出现错误指针

henry_sea的专栏 614

关于指针传值的错误

前段时间在进行编程的时候,碰到一个错误,大概问题如下: 使用的函数 这个函数的作用主要是对该指针内的值进行计算,毕竟一个值如果想让他进函数之后然后通过计算之后还能出来,那最容易实现的方法就是指针传地址进去了。下面则是对这个函数的实际运用了: 基本就是这样。开始的时候让该指针指向空,然后下面则是对其指向的值进行赋值计算,最后则是对该指针进行打印。通过这样的计算之后程序每次打印的值都一直是一个确定的错误的值。我开始的时候百思不得其解。因为当时的这个运算是在一个handle的Switch中进行的,.

weixin_41834519的博客 430

使用指针常见错误

使用指针的常见的错误: ① 使用未初始化的指针 int *pa; printf("\%d",*pa); /*输出一个随机的结果*/ 也就是所谓的“野指针”,很危险。 ② 指针赋值常量 float *pf=12.345 /*编译报错*/ int *pi=100 /*不能将一个非地址的值存放到指针变量中*/ ③ void 类型指针表示类型不确定的指针 int a=100;void *pa=&a;prin...

WP2908392647的博客 501

常见的使用指针数组的错误

未初始化指针数组:在使用指针数组之前,必须确保对其进行正确的初始化。如果将指针数组的元素初始化为有效的指针值(即没有将其设置为指向有效对象的地址),则在访问指针数组中的元素时可能会导致错误。对指针数组元素进行解引用之前未检查空指针:在解引用指针数组的元素之前,应先检查指针是否为 NULL。指针数组越界访问:指针数组是一个固定长度的数据结构,如果尝试超出其范围进行访问,将引发越界错误。混淆指针和数组:指针数组是由指针类型的元素组成的数组,但不能将其与普通的数组混淆。访问指针所指向的值可能会导致错误

qq_53645991的博客 833

c语言使用指针时段错误,浅析C语言指针使用中的几个常见错误

、伺 【人间创新】浅析 语 言指 针 使 用 中 的几 个 常见 错误张 尔 谦(武警 警 官学 院 ,四川 成 都 )摘要 :指针是 语言 中的一个重要概念 ,也可以说是 语言的灵魂。指针的引入使 语言变得高效和灵活 ,同时也给使用者尤其是初学者带来 一 定 的 困 惑 。本 文对 语 言 指 针 使 用 中 的 几 个 常见 错 误 进 行 了分 析 。关键 词 :指 针 ;数 组 :语 言中...

weixin_34662764的博客 504

C语言指针中野指针、空指针与段错误的解析

指针就像是一张写着随机地址的纸条,你根本不知道这个地址指向哪里,可能是系统关键区域,也可能是无效内存。// 这就是一个野指针!printf("野指针的值: %p\n", wild_pointer);// 输出随机地址// printf("尝试访问: %d\n", *wild_pointer);// 危险!可能导致崩溃return 0;空指针是一个特殊的指针值,表示"不指向任何地方"。在C语言中,我们用NULL宏来表示空指针

Java_FX的博客 522

指针引起的段错误

自学C的过程,难免遇到很多BUG,但BUG一般都告诉你哪里错了,不过要遇到段错误,一个字符一个字符地检查,总觉得没错啊,难道是编译器出错了?还是说电脑中病毒了?还好我遇到了一个大佬,能为我解惑。 我们先看一下下面这程序 #include<stdio.h> #include<string.h> char * strcat1(char *s,char *t)...

weixin_45802444的博客 874

C语言中指针运算错误的排查

指针是C语言中一个重要且复杂的概念,容易引发各种错误。通过正确地初始化指针、避免使用野指针、确保指针操作在合法范围内、释放内存后将指针置为NULL、确保指针类型匹配以及使用调试工具和内存检查工具,我们可以有效地排查和解决指针运算错误。在编写C程序时,要时刻注意指针的安全使用,以确保程序的正确性和稳定性。

shejizuopin的博客 684

Linux内核错误码和错误指针

在调用内核api发生异常时通常会返回一个负值,不同的错误情况,负数值也不同,这些数值就是内核中预定义的错误码(errno),了解这些错误码的含义可以让我们推测出错的原因,从而提高开发效率。在有限的内核空间内,最后一页4K大小的地址被保留,并和内核定义的系列错误码相关联,指明了对应的出错情况,如果一个指针指向了该页的地址范围被定义为错误指针。内核提供了错误指针相关的api。其中错误指针为指向内核空间的保留区域(addr:0xfffff000 ~ 0xffffffff,size:4K)的指针

IntLoveSummer的博客 1383

指针错误解析

错误 正确 1.char *s="abc",*t; *t=s; char *s="abc",*t; t=s; 2.char *s="abc",*t; *t=*s;   3.int *i=(int *)10;*i=11;   4.int *i=10;*i=11;

这是一个开始认识世界的博客 418

指针使用的常见错误

在编译环境为sublime text3 c语言编译环境下 windows 7 1 引用未初始化的指针变量 试图引用未初始化的指针变量是初学者最容易犯的错误。未初始化的指针变量就是“野”指针,它指向的是无效的地址。为避免编译器存在重大BUG,有的的编译器都会让它指向一个固定的、不用的地址,为0XCCCCCCCC ,这个内存单元是程序所不能访问的,访问就会触发异常,即“段错误”所以也不怕往里面写东西。 但我进行同样的操作,能够进行写,即第二种情况,如果指针变量不初始化,那么它可能指向内存中的任何一个存储单元,

不负此刻努力 1849

C语言 - 野指针 与 段错误,NULL

一、野指针 什么是野指针? :所谓野指针就是,指针(地址)是一个随机值,这个随机值会指向任何可能的空间,这就是野指针。 野指针的危害? :野指针可能会导致两种情况,这两种情况其实在前面描述过。 (1)指针没有对应任何真实的存储空间 (2)指向其它空间: 1)其它空间不允许操作 2)允许操作 这种最麻烦,可能会导致数据的篡改,而且还很难排查出错误。 int fun() { int *p; *p = 200; } 例子忘了给P初始化,也忘了赋值,如果p中的随机值恰好指向某

Dariuss的博客 728

【CUDA编程部署教程】第一章:GPU架构与CUDA编程核心 1

我们将剖析现代GPU的计算心脏——流式多处理器(SM),理解其独特的Warp执行模型,探索Tensor Core带来的革命性矩阵运算加速,并深入探讨决定性能命脉的内存体系。当必须访问全局内存时,则必须遵循**合并访问(Coalesced Access)**的原则,即让一个Warp内的32个线程访问连续的内存地址,从而让硬件将多次访问合并为一次高效的内存事务,以充分利用带宽。SM的调度器以Warp为单位分派指令,在一个Warp内,所有32个线程在同一时刻执行完全相同的指令,但处理的数据不同,这种模型被称为。

VectorShift的博客 203

基于TensorFlow+CNN+fer2013实现的人脸表情识别源码+详细代码注释(高分项目).zip

基于TensorFlow+CNN+fer2013实现的人脸表情识别源码+详细代码注释(高分项目).zip个人经导师指导并认可通过的高分设计项目,评审分98分。主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。基于TensorFlow+CNN+fer2013实现的人脸表情识别源码+详细代码注释(高分项目).zip个人经导师指导并认可通过的高分设计项目,评审分98分。主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。基于TensorFlow+CNN+fer2013实现的人脸表情识别源码+详细代码注释(高分项目).zip个人经导师指导并认可通过的高分设计项目,评审分98分。主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。基于TensorFlow+CNN+fer2013实现的人脸表情识别源码+详细代码注释(高分项目).zip个人经导师指导并认可通过的高分设计项目,评审分98分。主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习。

上一篇: DELL自由配置
下一篇: 嵌入式系统开发学习如何起步、如何深入?
ds1121
博客等级 码龄18年 30粉丝 24原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值