
在linux下,一般的c程序开发流程为:
c程序的编辑:
一般情况下,简单的c程序编辑是通过vi文本编辑器进行的,语法格式和在windows下的编辑是一样的;
c程序的编译:
而编译则是对编辑好的c语言程序进行一个,预处理,编辑,汇编和链接的过程,一般格式为: 编译器名 -参数 目标文件名 源文件名;
一般工作在命令行模式;
c程序的调试:
调试阶段则是建立在c程序编译通过的情况下进行的,一般通过GDB调试进行,逐步排错和细节查看。
数组越界,跟{
没关系,
可能是
你{}的数组成员
过多了
例如
char
a[5]={'1','2','c','b','5','6'},
5个空间
6个
就越界
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
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)