if(zb=='a1')通不过编译,另外'a1'应该是"a1",定义一个全局变量char state=0;将if语句改zhi成下面的程序:while((zb=getchar())!='\0'){ switch(state){ case 0:if(zb=='a')state=1;break;case 1:if((zb>='1')&&(zb<='8'))printf("%d",&a##zb);// 是连接符,相当于a...
你没有给成员指针name分配内存 name只是个指针,可能用到的头文件 include<iostream> include<malloc.h> visitor1.name=(char*)malloc(sizeof(char)*20);//C visitor1.name=new char[20];//C++ /***还可这样写***/ //在结构体内写构造和析构(这是C++的,)//这样写后面再定义结构体变量...
在这个程序中,我还添加了一些未使用的变量,来展示字符串溢出对其他数据的影响: #include<stdio.h>#include<string.h>intmain(){charname[10];/* Such as "Chicago" */intvar1=1,var2=2;/* show initial values */printf("var1 = %d; var2 = %d\n",var1,var2);/* this is bad .. please d...
当局部变量未初始化,且在第一次赋值前引用了该变量值,那么就会报使用了未初始化的局部变量这样一个警告或者错误。该程序中x,y,z,i均为局部变量,“i=0”首先对i变量进行了初始化,即赋值为0。接下来“for(x=1;y<20;x++)”,未对y进行初始化,赋值,就首次引用该变量,这种错误就叫做“使用...
你的局部变量m没有初始化,应当初始化m=0;
明显i和y都是局部变量,i初始值是0,但是y就是没有初始化的局部变量。例如:int main{int i = 0;int y;for(; i < y;i++){ //...} }
把while()循环改成do{}while()不对...看了一下你的switch逻辑...你直接去掉while()循环.要不加一个case '0'吧 再写一个标记在while()前面 bool flag = true;while(true){ ...cin >> choice;...case '0':flag = false;break;...} ...
你只定义了指向结构体的指针S ,没有定义结构体变量,更没让S指向一个一个结构体
你只定义了int m_Long; int m_Width 这两个变量,后面看你赋值了 m_Width;但是没有给m_Long赋值呀
main里q只是个指针,而且没指向任何struct,,把声明时的*号去掉,creat,show等直接用&q做为参数。。