永发信息网

C语言的字符串处理的,求指教

答案:4  悬赏:70  手机版
解决时间 2021-01-27 06:06
C语言的字符串处理的,求指教
最佳答案
A错误 str未赋初值



B在x16系统下正确,部分编译器正确


C++ x32下可以写成

    DWORD flOldProtect;
    HANDLE hProc = GetCurrentProcess();
    VirtualProtectEx(hProc, str4, strlen(str4)+1, PAGE_READWRITE, &flOldProtect);
    strcpy(str4,"HELLO4");
    VirtualProtectEx(hProc, str4, strlen(str4)+1, flOldProtect, &flOldProtect); VirtualProtectEx用于修改页属性。

赋值语句char *str4="string";

编译器会将"string"字符串放在.rdata字段中,映射到应用程序空间后页属性为PAGE_READONLY(只读)。
VirtualProtectEx将页属性改为PAGE_READWRITE(读写)。

否则会产生0xC0000005异常,类似于“该内存不为Write”的错误。
全部回答
A
str3没有分配空间,无法存储
A是错误的使用方式。追问但是我在电脑上运行,B也不可以,你能具体说下原因吗追答因为STR3使用前未被初始化。STR4看起来有点诡异,运行也报错,但是我不知道为什么4也是错的。
str3只是一个指针变量,但并没有表明str3指向哪个存储空间,所以A的做法是错误的
这是个多选题么,感觉B也不完全对。追问没错,我在VC上运行B也提醒是错的。但是我们老师说在给str4赋初始值时就是让str4指向一个空间,这个空间上保存着“string"没错,我在VC上运行B也提醒是错的。但是我们老师说在给str4赋初始值时就是让str4指向一个空间,这个空间上保存着“string"追答这种解释我个人认为是错误的,如果有:
char *str4="string";
那么你可以这么做:str4="eyeueu";
上面相当于是改变了str4的指向,系统会为“e......”这个字符串常量新开辟存储空间,并将这地址赋值给str4。此时,str4和它最初指向的string就没有关系了
但是,如果已经确定str4是指向string这个字符串的,那么绝不可以通过str4来改变这个存储空间里的值。而strcpy(str4,"HELL4");这就相当于改变了原来字符串常量的值,所以,我认为是错误的。追问不是很明白你讲的,但是还是很感谢!这个知道不能选两个满意答案,不好意思~
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
冥德的意思是什么啊?知道的请说下!
原发性干燥综合征可累及外分泌腺以外的器官,
CF生化模式怎么显示名字?
好想再爱你颜亚涛的歌酷狗怎么搜不到
将某种东西工具化,是啥意思?
全国三本交通运输类学校有哪些
用三段论第一格证明大小前提都不能是o判断
在保险公司辞职了,还有一个多月才发业绩奖金
砀极的意思是什么啊?知道的请说下!
″写字很有用″短文中我受的启发是什么?
昆虫的发育需要经过卵,幼虫,蛹,成虫四个时
豪沃重汽车门装饰品有没有卡车之家这个装饰品
【仓木麻衣 孙燕姿】...-孙燕姿/仓木麻衣的中
飞地画室好吗?听说这两年高考升学率很高,有
儒服的意思是什么啊?知道的请说下!
推荐资讯
情人节和清明节有什么区别吗?
LAMY studio好吗?
荣华绣气台球室地址在什么地方,我要处理点事
怀化市区旅游
石锅烤肉地址有知道的么?有点事想过去
什么企业汽油增值税可以退税
上海香港名店街susie服装
下营村地址有知道的么?有点事想过去
中国邮政储蓄银行ATM(茅草街镇朝阳街)怎么去
大冶市保安派出所地址好找么,我有些事要过去
逞办的意思是什么啊?知道的请说下!
“千里修书只为墙,让他三尺又何妨?万里长城
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?