c语言编程调试不成功
你难道不知道有Array Out of bound这种东西么?
■网友
str1与str2是字符指针,没有分配空间,所以for循环中通过下边指向常量,向常量赋值引发程序错误。声明str1与str2后,用malloc分配内存空间,再赋值。
■网友//不用VS和Code::Blocks最差用个Dev-cpp啊。用notepad++调试,楼主真能折腾啊。#include \u0026lt;stdio.h\u0026gt;#include \u0026lt;strings.h\u0026gt; \t\t\t\t// 使用strlen,strcat需要包含头文件 int main(int argc, char *argv){\tchar str1 = "wel"; \t\t\t// sizeof(str1) = 8 (\u0026#39;w\u0026#39;,\u0026#39;e\u0026#39;,\u0026#39;l\u0026#39;,\u0026#39;\\0\u0026#39;, , , , ,)\tchar str2 = "come"; \t\t\t// sizeof(str2) = 5 (\u0026#39;c\u0026#39;,\u0026#39;o\u0026#39;,\u0026#39;m\u0026#39;,\u0026#39;e\u0026#39;,\u0026#39;\\0\u0026#39;)\t//char str2 = {\u0026#39;c\u0026#39;,\u0026#39;o\u0026#39;,\u0026#39;m\u0026#39;,\u0026#39;e\u0026#39;}; // sizeof(str2) = 4 (\u0026#39;c\u0026#39;,\u0026#39;o\u0026#39;,\u0026#39;m\u0026#39;,\u0026#39;e\u0026#39;)\tint length1= strlen(str1); \t\t// length1=3 \tint length2= strlen(str2); \t\t// length2=4\tint i;\t\t//printf("%s\",strcat(str1,str2));\t// 可以使用strcat直接合并字符串 \t \tfor(i=length1;i\u0026lt;=(length1+length2);i++)\t\tstr1 = str2; \t\tprintf("%s\",str1);\treturn 0;}/*void main()可能是单片机里的用法,资源紧张就别用c库了,自己撸个字符串合并挺好的。自己撸一般就是用sizeof或者利用字符串末尾的\u0026#39;\\0\u0026#39;这两种方法来判断边界。边界都有了合体就不困难了,注意最后给\u0026#39;\\0\u0026#39;留个空间。*/
■网友
str1直接访问到数组外面猜不出来你想干嘛
■网友
访问越界了;学会调试;main应该而且只能是int型的;多看书;
■网友
C语言的数组长度不是无限大的,其长度在声明的时候就已经被定下来了。
推荐阅读
- vs2012、Qt4.7不能单步调试咋办
- scrapy抓取豆瓣报出403错误
- vs2012调试时加载符号是干啥的?
- c语言编程遇到的一个难题,求教各位大牛,咋做
- 域名绑定总是不成功,谁来看看
- 怎样在eclipse for C中调试php内核运行环境
- tmall 爬虫出问题,单独调试无问题,运行时报错
- 长城|调试机器人 备产新车型
- 通过浏览器的开发者调试工具查看请求的所有文件,怎样确定某一文件是由另外的哪个文件请求的
- Visual Studio 调试是显示缺少调试目标是咋回事
