linux下我们使用ubuntu系统,从8、10、12、14、16到现在的18,有界面的,ide使用qt,直接断点调试即可。
c的话可以使用gdb。
int main(int argc, char **argv){
char *p
int i
p= (char*) malloc(30) //加类型转换 (char*)
strcpy(p,"not 30 bytes")
printf("p=<%s>\n",p)
if(argc==2){
if(strcmp(argv[1],"-b") ==0) p[0]='a' //不要漏小括号,下标最大29,这里用0
else if(strcmp(argv[1],"-f")==0){
p[0]='b'
}
}
printf("%s\n",p) //这里输出
free(p) //释放
return 0
}
输入 程序名 -b, 输出:aot 30 bytes
输入 程序名 -f, 输出:bot 30 bytes