66问答网
所有问题
C语言strcat(a,c),字符串a的长度明显不够,为啥不出错?
要求不是足够大吗,为啥这也可以?求解!具体如图。
举报该问题
推荐答案 2020-02-03
因为strcat函数是不安全的。虽然数组a的长度是4,但将c连接到a的后面时,不会进行越界检查,而是直接将c追加到a的后面。这样,就会占用不属于a的内存,所以运行程序时可能出现多种情况,比如:
1.
程序奔溃
2.
表现正常
3.
没奔溃,但程序出现莫名其妙的现象
这3种可能都有可能出现,出现2实属侥幸,说不定下次运行时就会出现情况1或3。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://66.wendadaohang.com/zd/nUnp9U9i9ixs2x9xsDx.html
其他回答
第1个回答 2020-01-29
strcat()函数执行是把字符串b连接到字符串a的后边,也就要求字符串a要足够长,能装下b,而你这样定义的字符串a和b都是字符串字面量,也叫着字符串常亮,很明显前边字符串长度是固定的4字节,不仅不够增加后边字符串长度而且还是不可修改的,所以运行一定出错,要是在linux下运行将产生一个段错误。修改可以把a定义成这个样子:char a[10] = "tom";
追问
可,打印结果是对的~_~,没出错,为啥。我用visual studio 2010打C语言
本回答被网友采纳
相似回答
设两个
字符串
"Beijing"、"China"分别存放在字符数组str1[10],str2...
答:
当然是A
strcat(
const char * Destination, const char * Sourse);函数原型明显是资源
字符串
连接到目标字符串 并且第二个内存会越界,常量字符串存储在静态区,静态区内存只读,在“beijing”后内存写入程序会崩溃 本回答由提问者推荐 举报| 答案纠错 | 评论 6 3 marilynbkun 采纳率:43% 来自:芝麻团 擅长: 暂未...
C语言
问题, 大家帮忙看一下,有什么问题。#include<stdio.h> void ca...
答:
s1溢出了,它
的长度
只有 njj+结束符,存不下 njjjb+结束符 简单点的话,你就弄个定长的吧 char s1[32]="njj"完善点的话,就用楼上的,自己分配个 长度= strlen(s1)+strlen(s2)+1 的来存 cat的结果
求一些c编程题
答:
3、
C语言
规定,程序中各函数之间 A) 既允许直接递归调用也允许间接递归调用 B) 不允许直接递归调用也不允许间接递归调用 C) 允许直接递归调用不允许间接递归调用 D) 不允许直接递归调用允许间接递归调用、A、1 4、C语言中可处理的文件类型是( ) A) 文本文件和数据文件 B)文本文件和二进制文件 C) 数据文件和...
用
C语言
编写的反转句子 如把: what is your name 换成 name your is...
答:
自己写的一个,
用C标准库字符串函数实现的,指针用不好很容易出错
。主要思路:将整个句子以空格“ ”分割成多个字符串,保存在临时数组str_tmp[MAXLEN][20]中;将临时数组反序写入到str_reverse[MAXLEN]中,输出就可以了。源程序:include <stdio.h> include <string.h> define MAXLEN 80 void ...
C语言
switch和数组的意义
答:
2)如对全部元素赋初值,则第一维
的长度
可以不给出。字符数组:用来存放字符变量的数组称为字符数组。
C语言
允许用
字符串
的方式对数组作初始化赋值。例如: static char c[]={'c', ' ','p','r','o','g','r','a','m'}; 可写为:static char c[]={"C program"}; 或去掉{}写为:sratic char c...
C程序
高手帮忙给个答案
答:
最简单的方式:include<stdio.h> char * charlink(char *p, char *q){ char *pp=p;char *qq=q;while(*pp!='\0') pp++;while(*qq!='\0') *pp++=*qq++;pp='\0';return p;} main(){ char a[10]="aaa";char *b="bbb";printf("%s\n",charlink
(a,
b));} ...
大家正在搜
c语言求字符串的长度并输出
计算最长的字符串长度c语言
c语言strlen计算字符串长度
c语言判断字符串长度的函数
c语言字符串长度怎么看
c语言判断字符串长度
c语言读取字符串长度
c语言字符数组长度
c语言字符串字节数怎么计算
相关问题
c语言关于strcat函数使用报错的疑问。
c语言程序,将字符串b接在字符串a后,输出长度和新的字符串,...
C语言strcat函数怎么用
c语言中怎样用strcat两个字符串链接在一起
C语言,strcat连接函数,把第二个字符串连接到第一个字符...
不太理解C语言strcat()函数的输出
c语言编程,利用函数把字符数组b,连接到字符数组a的后面,并...