C/C++ char a[ ] 和 char *a 的差别,改变 char *a爆内存错误的原因

对于一些需要传入参数为 char * temp 指针类的函数;

我们定义一个 char a[10] 或char *a 传进去都是可以的。

但是,

如果该函数是会改变你所传入的参数的值时, 传入 char *a 将爆内存错误,而 char a[10] 却不会。

例如:下面中的 strtok。strcpy、strcat 如果第一个参数传入的是 char *a 指针类型,都是会引起爆内存错的

我例子中没使用 char * 

原因:

指针类型 * 它是没被分配地址空间的,定义了就是一个指针常量,常量去改变它的值,自然就错了。

而 a[] 是用地址空间的。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏猿人谷

静态成员函数和非静态成员函数的区别?

一个静态成员函数不与任何对象相联系,故不能对非静态成员进行默认访问。 它们的根本区别在于静态成员函数没有this指针,而非静态成员函数有一个指向当前对象的指针t...

2029
来自专栏xingoo, 一个梦想做发明家的程序员

虚函数

虚函数 代码如下定义: // test1107.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <i...

2185
来自专栏linux驱动个人学习

typeof关键字的作用

一、typeof详解: 前言:     typeof关键字是C语言中的一个新扩展,这个特性在linux内核中应用非常广泛。(其实这和C++的auto关键字和可以...

3215
来自专栏技术小站

找第一个只出现一次的字符

给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。

1821
来自专栏猿人谷

C++ STL疑惑知识点

 1.remove的问题 ? ? 参考:http://zhidao.baidu.com/question/458494170.html 2.用find搜索数组中...

2139
来自专栏禁心尽力

Redis之数据类型大全

一:String类型 1、set方法:设置key对应的值为string类型的value,如果该key已经存在,则覆盖key对应的value值。所以在redis中...

8967
来自专栏王磊的博客

javascript中Array的操作

concat(组合数组) join(数组转字符串) pop(删除最后一个元素) shift(删除第一个元素) push(在数组尾部添加新元素) unshift(...

2718
来自专栏鸿的学习笔记

python的函数

在python里的lambda表达式只能使用纯表达式,除非像pyspark那样重载了。

1052
来自专栏Golang语言社区

golang的{}初始化

之前说到Golang中某些类型可以赋值nil, 某些类型不能赋值nil. 不能赋值nil都是initialized value不为nil的类型, 例如: boo...

3689
来自专栏Python

python join 和 split的常用使用方法

函数:string.join() Python中有join()和os.path.join()两个函数,具体作用如下: join():    连接字符串数组。将...

2126

扫码关注云+社区