这是因为char* b = "……",中。 b是一个常量,不能对它指向的内存区域赋值。
目前创新互联已为上千多家的企业提供了网站建设、域名、网站空间、网站改版维护、企业网站设计、巍山网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
类似下面的代码:
char* p = "hello";
p[0] = 'c';
是同样的错误。
#include "stdafx.h"
#include stdio.h
#include string.h
void replaceChar(char *string, char oldChar, char newChar){
int len = strlen(string);
int i;
for (i = 0; i len; i++){
if (string[i] == oldChar){
string[i] = newChar;
}
}
}
int main(){
char str[] = "test";
char oldChar = 't';
char newChar = 'w';
replaceChar(str, oldChar, newChar);
printf("%s\n", str);
return 0;
}
A函数的源码可控吗?如果可控,把对B函数的调用改成对新实现的调用就行了。
如果A函数不是自己写的(源码不可控),会麻烦一些。例如,在支持指针的语言上,可以修改B函数入口部分的汇编代码,jmp到自己的新实现。要求B函数和你的实现原型必须完全相同。
标题名称:C语言替换函数源代码,编程替换函数
本文URL:https://www.cdcxhl.com/article22/hdigjc.html
成都网站建设公司_创新互联,为您提供标签优化、移动网站建设、响应式网站、营销型网站建设、App开发、网站改版
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联