这个程序运行一下为什么提示exe已停止工作?

#include

void strcpy(char *,char *,int);

int main()
{
char *s = "1245";
char *t = "3123";

strcpy(s,t,3);
printf("%s\n",s);
return 0;

}
//函数strcpy(s,t,n)将t中UI多前n个字符复试到s中
void strcpy(char *s,char *t,int n)
{
while( n-- && *t )
*s++ = *t++ ;
*s = '\0';
}

2个回答

char *s = "1245";这样的写法,表示s指向常量区的一个常量字符串"1245",该区域是不允许进行写操作的
改成char s[5] = "1245";就行了

 #include<stdio.h>
void strcpy(char *,char *,int);
int main()
{
    char s[5] = "1245";
    char *t = "3123";
    strcpy(s,t,3);
    printf("%s\n",s);
    return 0;
}
//函数strcpy(s,t,n)将t中UI多前n个字符复试到s中
void strcpy(char *s,char *t,int n)
{
    while( n-- && *t )
        *s++ = *t++ ;
    *s = '\0';
}
u010132497
阿苏尔 谢谢你。你的回答真是让我柳暗花明,豁然开朗
大约 4 年之前 回复

char *s="12345",左边的字符指针在栈中的变量。右侧的字符串常量是放在存储区的,是只允许读,不允许写的。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
【C语言】vc6.0运行程序过程中提示***.EXE已停止工作

在运行“添加”这一块时,输入完信息之后就提示***.EXE已停止工作,这是什么错? 代码如下 #include<stdio.h> #include<stdlib.h> #include<string.h> #include <windows.h> #include<conio.h> #define LENTEL sizeof(tel) #define ID struct tel struct tel { char name[15]; char tele[15]; char style[15]; char mail[20]; ID * next; }; ID *id = NULL; /*读取telephone.txt文件中的内容创建学生链表*/ ID* create() { ID *head; ID *p1,*p2; p2 = (ID*)malloc(LENTEL); head = p2; FILE *fp; if((fp = fopen("telephone.txt","r")) == NULL) { printf("联系人文件打开错误,请将telephone.txt放置与程序同一目录下!\n"); exit(0); } for(int i = 0; i<1;i++) fscanf(fp,"%*[^\n]%*c"); while(!feof(fp)) { p1 = (ID*)malloc(LENTEL); fscanf(fp,"%s%s%s%s",p1->name,p1->tele,p1->style,p1->mail); p1->next = NULL; p2->next = p1; p2 = p1; } fclose(fp); return head; } ID* findbyname(char name[]) { ID* p = id; ID* temp = NULL; while (p!=NULL) { if(strcmp(name,p->name) == 0) { temp = p; break; } else { p = p->next; } } return temp; } ID* findbytele(char tele[]) { ID* p = id; ID* temp = NULL; while (p!=NULL) { if(strcmp(tele,p->tele) == 0) { temp = p; break; } else { p = p->next; } } return temp; } /*判断这个联系人是否存在*/ bool Istel(char name[]) { ID *p = id->next; bool flag = false; while (p != NULL) { if(strcmp(p->name,name) == 0) { flag = true; } p=p->next; } return flag; } int add() { ID *newtel = NULL; ID *p = id; char tel_name[15]; char tel_tele[11]; char tel_style[15]; char tel_mail[20]; printf("\n------- 请输入学生基本信息 --------\n"); printf("姓名 电话 类别 邮箱\n"); printf("--------------------------------------\n"); scanf("%s%s%s%s",tel_name,tel_tele,tel_style,tel_mail); if(!Istel(tel_name)) { newtel = (ID*)malloc(LENTEL); strcpy(newtel->name,tel_name); strcpy(newtel->tele,tel_tele); strcpy(newtel->style,tel_style); strcpy(newtel->mail,tel_mail); newtel->next = NULL; for(p=p->next; p->next!=NULL; p=p->next); p->next = newtel; printf("\n联系人已添加成功!\n"); } else { printf("\n该联系人姓名已存在!\n"); } getch(); return 0; } void Print_Inquire_All() { void menu_print_out(); ID *p1 = id->next; menu_print_out(); while (p1!=NULL) { printf("%s\t%s\t%s\t%s\n",p1->name,p1->tele,p1->style,p1->mail); p1 = p1->next; } system("pause"); } void menu_print_out() { printf("\n---------------------------------\n"); printf("\n---------------------------------\n"); } /*主菜单*/ void menu(void) { void ReadBack(); printf(" ╭════════╮ \n"); printf("╭══════╣通讯管理系统V1.0╠══════╮\n"); printf("║ ╰════════╯ ║\n"); printf("║ 【1】添加数据 【3】退出系统 ║\n"); printf("║ ║\n"); printf("║ 【2】查询数据 ************* ║\n"); printf("║ ║\n"); printf("╰══════════════════════╯\n"); printf("◎请输入功能前的序号进入相应的工具:【 】\b\b"); int a = 0; a = getchar(); while(a!='1'&&a!='2'&&a!='3') { printf("error! please input the right number!\n"); putchar('\a'); getchar(); printf("◎请重新输入功能前的序号进入相应的工具:【 】\b\b"); a = getchar(); } switch(a) { case '1': add(); break; case '2': Print_Inquire_All(); case '3': ReadBack(); exit(0); break; } getchar(); } /*退出程序时将数据写回telephone.txt进行更新*/ void ReadBack() { FILE *TEL = fopen("telephone.txt","w"); ID *te = id->next; fprintf(TEL,"Tname Ttele Tstyle Tmail"); while (te != NULL) { fprintf(TEL,"\n%s %s %s %s",te->name,te->tele,te->style,te->mail); te = te->next; } fclose(TEL); } void Lunch() { FILE *fp; if((fp=fopen("telephone.txt","r")) == NULL) { FILE *fp; fp=fopen("telephone.txt","w+"); } else id = create(); menu(); } void main() { SetConsoleTitle("C语言通讯录管理系统"); Lunch(); }

C语言visual studio运行程序过程中提示.EXE已停止工作

源程序: #include<stdio.h> #include<conio.h> int main() { int year,month,day,sum; int d[12]={0,31,59,90,120,151,181,212,243,273,304,334}; printf("Please enter the data:"); scanf("%d,%d,%d",&year,&month,&day); if((year%4==0&&year%100!=0)||year%400==0) sum=d[month-1]+day; else sum=d[month-1]+day+1; printf("The days in this year:%d\n",sum); getch(); } ![图片说明](https://img-ask.csdn.net/upload/201710/19/1508390966_214120.png)

为啥一运行就显示.exe已停止工作

#include <iostream>#include <cstdio>#include <cstdlib>#include <cmath>#include <cstring>using namespace std;const int MAXN=1001,MAXM=MAXN*4*2,INF=~0U>>1;struct Queue{ int Q[MAXN],head,tail,size; bool inq[MAXN]; void init() { memset(inq,0,sizeof(inq)); head = size =0; tail = -1; } void ins(int p) { size++; if (++tail == MAXN) tail = 0; Q[tail] = p; inq[p]=true; } int pop() { size--; int p=Q[head]; if (++head == MAXN) head = 0; inq[p]=false; return p; }}Q;struct edge{ edge *next,*op; int t,c,v;}*V[MAXN],ES[MAXM],*fe[MAXN];char City[MAXN][16];int N,M,S,T,EC,Ans,Costflow;int dist[MAXN],ft[MAXN];inline void addedge(int a,int b,int c,int v){ ES[++EC].next = V[a]; V[a]=ES+EC; V[a]->t=b; V[a]->c=c; V[a]->v=v; ES[++EC].next = V[b]; V[b]=ES+EC; V[b]->t=a; V[b]->c=0; V[b]->v=-v; V[a]->op = V[b]; V[b]->op = V[a];}int getcity(char *s){ for (int i=1;i<=N;i++) if (strcmp(s,City[i])==0) return i; return -1;}void init(){ int i,a,b; char name[16]; freopen("airl.in","r",stdin); freopen("airl.out","w",stdout); scanf("%d%d",&N,&M); for (i=1;i<=N;i++) { scanf("%s",City[i]); if (i==1 || i==N) addedge(i,i+N,2,-1); else addedge(i,i+N,1,-1); } for (i=1;i<=M;i++) { scanf("%s",name);a=getcity(name); scanf("%s",name);b=getcity(name); if (a<b) addedge(a+N,b,1,0); else addedge(b+N,a,1,0); } S=1; T=N+N;}bool SPFA(){ int i,j; for (i=S;i<=T;i++) dist[i]=INF; dist[S]=0; Q.ins(S); while (Q.size) { i=Q.pop(); for (edge *e=V[i];e;e=e->next) { j=e->t; if (e->c && dist[i] + e->v < dist[j]) { dist[j] = dist[i] + e->v; ft[j] = i; fe[j] = e; if (!Q.inq[j]) Q.ins(j); } } } return dist[T]!=INF;}void Augment(){ int i,delta=INF; for (i=T;i!=S;i=ft[i]) if (fe[i]->c < delta) delta = fe[i]->c; for (i=T;i!=S;i=ft[i]) { fe[i]->c -= delta; fe[i]->op->c += delta; Costflow += fe[i]->v * delta; }}void SPFAFlow(){ Q.init(); while (SPFA()) Augment();}int main(){ init(); SPFAFlow(); Costflow =-Costflow; Costflow -= 2; if (ES[1].c!=0) Costflow = 1; printf("%d\n",Costflow); return 0;}

C语言 为什么编译没问题运行时显示exe停止工作?

//main.c #include <stdio.h> #include <stdlib.h> #include "list.h" int main() { struct Word *head; head=creatLink(); listToFile(head); return 0; } //list.h #ifndef _LIST_H #define _LIST_H struct Word { char japanese[20];//日文 char kana[20];//假名 int accent;//声调 char property[10];//词性 char chinese[30];//中文 struct Sentense *head2;//句子结构体链表的头指针 struct Word *next;//下一个结点地址 }; struct Sentense { char sentense[50];//例句 struct Sentense *next;//下一个结点地址 }; FILE *inputOneWord_F(struct Word *p,FILE *fp); struct Word *creatLink(); FILE *outputOneWord_F(struct Word *t,FILE *fp); void listToFile(struct Word *head); #endif // _LIST_H //list.c #include <stdio.h> #include <stdlib.h> #include "list.h" #define LEN sizeof(struct Word) #define LEN2 sizeof(struct Sentense) //将文件中一个Word结构体中的所有数据读入p所指向的链表结点,返回值为指针目前在文件中所在的位置 FILE *inputOneWord_F(struct Word *p,FILE *fp) { char a; fscanf(fp,"%s%s%d%s%s",p->japanese,p->kana,&p->accent,p->property,p->chinese); struct Sentense *g,*tail=NULL; //新建Sentense结构体单链表 p->head2=NULL; while(1){ fgetc(fp);//吸收换行符 a=fgetc(fp);//通过是否为换行符来判断当前单词有无例句 if(a=='\n'||feof(fp)) break; //说明此单词无例句返回指针目前在文件中所在的位置,进行下一个单词的读取 else{ fseek(fp,-1l,SEEK_CUR);//光标向前一个字符 fputc(a,fp);//将刚才从文件读取的字符按原样写入文件(位置不变) g=(struct Sentense*)malloc(LEN2);// fscanf(fp,"%s",g->sentense); if(p->head2==NULL)p->head2=g;//如果链表为空,新建立的结点就是链表的头结点 else tail->next=g; tail=g;//tail永远指向链表的尾结点 } } tail->next=NULL; return fp; } //在程序执行之初将上一次存储在文件中的全部数据读入新建Word结构体单链表,函数返回单链表头指针 struct Word *creatLink() { struct Word *p,*head=NULL,*rear=NULL; FILE *fp; fp=fopen("WordList.txt","r"); if(fp==NULL) { printf("单词表为空!"); return head; } p=(struct Word*)malloc(LEN); fp=inputOneWord_F(p,fp);//更改指针在文件中所在的位置 while(!feof(fp)) { if(head==NULL)head=p; else rear->next=p; rear=p; p=(struct Word*)malloc(LEN); fp=inputOneWord_F(p,fp); } rear->next=p; rear=p; rear->next=NULL; fclose(fp); return head; } FILE *outputOneWord_F(struct Word *t,FILE *fp) { fprintf(fp,"\n%s %s %d %s %s\n",t->japanese,t->kana,t->accent,t->property,t->chinese); struct Sentense *p; p=t->head2; //p为指向Word结构体中Sentense结构体链表的头指针; while(p!=NULL) { fprintf(fp,"%s\n",p->sentense); p=p->next; } return fp; } //程序运行结束之际将链表中的数据全部写入文件 void listToFile(struct Word *head) { FILE *fp; fp=fopen("WordList2.txt","w"); struct Word *p; p=head; while(p!=NULL) { fp=outputOneWord_F(p,fp); p=p->next; } fclose(fp); }

C++提取矩阵txt文件,结果运行程序,提示 .exe已停止工作,求帮助一下,谢谢啦!

#include <iostream> #include <fstream> #include <string> using namespace std; ifstream& openFile(ifstream& in, const string& fileName) { in.open(fileName.c_str()); return in; } int main() { string fileName; double v[3][3]; ifstream fread; if (openFile(fread, "m.txt")) { for(int i=0;i<3;i++) fread>>v[i][0]>>v[i][1]>>v[i][2]; } cout<<v[1][1]<<endl; } 其中 m.txt={ 1 2 3 4 3 9 7 5 8}

程序在服务器上运行时弹窗:出现了一个问题,导致程序停止正常工作,请关闭该程序

.net写了一个程序,最初是用vs2008编的,后来用vs2012在源程序上新加了一些功能,在自己电脑上运行没有问题,然后将bin目录下的Release整个文件夹拷到服务器上,然后运行程序,程序跑起来的时候会弹窗提示说:出现了一个问题,导致程序停止正常工作,请关闭程序。不关闭的情况下,程序也能正常运行,只能缩小放在最下面,但是每次打开都弹窗很烦,请教各位大神给支招。

运行程序时会出现停止工作的提示是怎么回事?

#include<iostream> using namespace std; #include <gmp.h> const int prime[]={10,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,91,97}; int main() { mpz_t N,temp,p,a,b,temp1,temp2,temp3,k,chosennum,sqrtnum,P,Q; //mpz_t 为GMP内置大数类型 mpz_init(N); //大数t使用前要进行初始化,以便动态分配空间 mpz_init(temp); mpz_init(temp1); mpz_init(temp2); mpz_init(temp3); mpz_init(p); mpz_init(a); mpz_init(b); mpz_init(P); mpz_init(Q); //mpz_init(k); mpz_init(chosennum); mpz_init(sqrtnum); mpz_ui_pow_ui(chosennum,2,20); //设定比较值。2^40 int perfect_square(mpz_t N); //判断完全平方数 cout<<"输入N:"; //mpz_set(N,); gmp_scanf("%Zd",N); //输入待分解数 gmp_printf("%Zd\n",N); int i=1; int j=1; int flag; mpz_set(temp,N); while(i<=200) //模式1算法 { //mpz_set(N,temp); j=1; for(j=1;j<=i;j++) mpz_mul_ui(N,N,j); mpz_sqrt(p,N); mpz_mod(b,N,p); mpz_sub(temp1,N,b); mpz_mul(temp2,p,p); mpz_sub(temp3,temp1,temp2); //求出参数a,b,p mpz_cdiv_q(a,temp3,p); //gmp_printf("p=%Zd\n",p); //gmp_printf("b=%Zd\n",b);gmp_printf("a=%Zd\n",a); mpz_init(k); mpz_set(N,temp); while(mpz_cmp(chosennum,k)) { mpz_add(temp1,a,k); mpz_mul(temp2,temp1,temp1); mpz_mul(temp3,k,p); mpz_sub(temp3,b,temp3); mpz_mul_ui(temp3,temp3,4); mpz_sub(sqrtnum,temp2,temp3); //gmp_printf("sqrtnum=%Zd\n",sqrtnum); flag=perfect_square(sqrtnum); //if(flag==0)cout<<"不是完全平方数"; if(flag>0) { //gmp_printf("sqrtnum=%Zd\n是完全平方数",sqrtnum); mpz_sqrt(temp1,sqrtnum); mpz_add(temp2,a,k); mpz_neg(temp2,temp2); mpz_add(temp1,temp1,temp2); mpz_cdiv_q_ui(temp1,temp1,2); mpz_sub(P,p,temp1); mpz_gcd(P,P,N); //if(mpz_cmp_ui(P,1)) //gmp_printf("P=%Zd\n",P); mpz_sqrt(temp1,sqrtnum); mpz_add(temp2,a,k); mpz_neg(temp2,temp2); mpz_sub(temp1,temp2,temp1); mpz_cdiv_q_ui(temp1,temp1,2); mpz_sub(Q,p,temp1); mpz_gcd(Q,Q,N); if(mpz_cmp_ui(Q,1)&&mpz_cmp_ui(P,1)) {gmp_printf("P=%Zd ",P); gmp_printf("Q=%Zd ",Q); return 0;} //return 0; } mpz_add_ui(k,k,1); } i++; } mpz_clear(N); mpz_clear(temp); mpz_clear(p); mpz_clear(a); mpz_clear(b); mpz_clear(k); mpz_clear(temp1); mpz_clear(temp2); mpz_clear(temp3); mpz_clear(chosennum); mpz_clear(sqrtnum); mpz_clear(P); mpz_clear(Q); //mpz_clear(); return 0; } int perfect_square(mpz_t N) //判断是否为完全平方数 { int i=0,k,j; int temp; int flag; while(i<23) { k=prime[i]/2+1; int *array=new int[k]; for(j=0;j<k;j++) array[j]=((j+1)*(j+1))%prime[i]; //temp=N1%prime[i]; temp=mpz_fdiv_ui(N,prime[i]); j=0; flag=0; while(j<k) { if(array[j]==temp) flag++; j++; } if(flag==0) return 0; i++; } return 1; } 请问这段代码有什么错误 ?用VC++6.0编的,为什么输入99982642135860264139,运行后会出现**.exe已停止工作, 是怎么回事啊?

exe停止运行是为什么?

#include<cstdio> #include<cstring> #include<cstdlib> #include<iostream> using namespace std; int max1(int,int); int max2(int,int); int x,y,i,j,m,n,k,t,l; int a[501],f[501][501],d[501]; int main() { cin>>m>>k; for(i=0;i<=500;i++) for(j=0;j<=500;j++) f[i][j]=10000000; for(j=1;j<=m;j++) { cin>>a[j]; d[j]=d[j-1]+a[j]; f[1][j]=d[j]; } for(i=2;i<=k;i++) for(j=1;j<=m;j++) for(l=1;l<=j-1;j++) if(max1(f[i-1][l],d[j]-d[l])<f[i][j]) f[i][j]=max1(f[i-1][l],d[j]-d[l]); max2(m,k); } int max1(int x,int y) { if(x>y) return x;else return y; } int max2(int i,int j) { int t,x; if(j==0)return 0; if(j==1) { cout<<l<<" "<<endl; return 0; } t=i; x=a[i]; while(x+a[t-1]<=f[k][m]) { x+=a[i-1]; t--; } max2(t-1,j-1); cout<<t<<" "<<i<<endl; return 0; } 各位大神帮忙看看程序停止运行是为什么?

求助:一直说 已停止工作

题目:开始运行先提示用户输入彩球个数n(0<n≤81),然后随机选取颜色和位置填充棋盘,输出填充后的棋盘状态。 接下来,提示用户输入指定彩球的坐标(fx,fy)以及目标空位(tx,ty)(0≤fx,fy,tx,ty≤8),如果起点没有彩球,或者目标不是空位,需要提示错误并重新输入。 坐标以左上角为(0,0),第一个分量为行,后一个分量为列。 本题要求使用栈完成。 #if defined(WIN32) || defined(WIN64) #include <windows.h> #define sleep(n) Sleep(1000 * (n)) #endif #include <stdio.h> #include <stdlib.h> #include <time.h> int flag; int x1,y1; typedef struct{ int x; int y; } locate; typedef struct { locate *buf; //数据区 int top; //栈顶指针 int m; //栈大小 } stack; void init_stack(stack *s, int size) { s->buf = ( locate*) malloc(size * sizeof(locate)); s->top = -1; s->m = size; } void push(stack *s, int x,int y) { if (s->top == s->m - 1) return; s->top = s->top + 1; (s->buf[s->top]).x = x; (s->buf[s->top]).y = y; } void pop(stack *s, int *x,int *y) { if (s->top == -1) return; *x = (s->buf[s->top]).x; *y = (s->buf[s->top]).y; s->top = s->top - 1; } int is_empty(stack *s) { return (s->top == -1); } void top(stack *s, int *x,int *y) { if (s->top == -1) return; *x = (s->buf[s->top]).x; *y = (s->buf[s->top]).y; } int main() { void judge(int m,int n,int x,int y,int a[9][9]); int i,j,count=0,m,n,x,y; int a[9][9]={0}; printf("Please write the amount of ball:"); scanf("%d",&n); srand((unsigned) time(NULL)); while(count<n)//填充随机数1是球球,0是空位 { i= rand()%9; j=rand()%9; while(a[i][j]==1) { i= rand()%9; j=rand()%9; } a[i][j]=1; count++; }; for(i=0;i<9;i++)//打印 for(j=0;j<9;j++) { printf("%d ",a[i][j]); if(j==8) printf("\n"); } printf("Please write the original location:"); scanf("%d,%d",&m,&n); if (a[m][n]==0) {printf("fail!");return 0;} printf("Please write the target location:"); scanf("%d,%d",&x,&y); judge(m,n,x,y,a); if(flag==1) printf("success!"); else printf("fail!"); return 0; } void judge(int m,int n,int x,int y,int a[9][9]) { flag=0; stack s; init_stack(&s, 100); int i,j; i=m,j=n; if((i==x)&(j==y)) flag=1; while(!(a[i][j+1]&&a[i+1][j]&&a[i][j-1]&&a[i-1][j]))//如果四周都是球就退出了 { if(a[i][j+1]==0&&(is_empty(&s)||!((i==x1)&&(j+1==y1)))&&(j>=0&&j<=7)) //如果(上面是空的)&&上一步不是往上走&&往上走不会溢出 { j++;s.top++;push(&s,i,j); } else if(a[i+1][j]==0&&(is_empty(&s)||!((i+1==x1)&&(j==y1)))&&(i>=0&&i<=7)) { i++;s.top++;push(&s,i,j); } else if(a[i][j-1]==0&&(is_empty(&s)||!((i==x1)&&(j-1==y1)))&&(j>=1&&j<=8)) { j--;s.top++;push(&s,i,j); } else if(a[i-1][j]==0&&(is_empty(&s)||!((i-1==x1)||(j==y1)))&&(i>=1&&i<=8)) { i--;s.top++;push(&s,i,j); } else { a[i][j]=1;pop(&s,&i,&j); } if((i==x)&&(j==y)) { flag=1; break;} top(&s,&x1,&y1);//保存这次的行走坐标,给下次使用 } } 结果一直显示停止工作,除非是那种就往右一格就到的那种才可以显示出来。 我是初学者,很菜,希望大神指导下,谢谢

编译没有错误,运行就出现exe停止工作

/* 下放为多孔介质区域,上方为电解液区域 整个区域的格子数为n*m,n为横向长度,m为纵向长度 */ #include "stdio.h" #include "math.h" #include "time.h" #define n 3200 #define m 2400 int kk=0; void main(){ static double f[9][n+1][m+1]; static double feq[9][n+1][m+1]; static double rho[n+1][m+1]; static double u[n+1][m+1]; static double v[n+1][m+1];//声明变量和函数 double w[9],cx[9],cy[9],uo=0.0000279,sumvelo=0.0,rhoo=5.0,dx=1.0,dy=1.0,dt=1.0,cs,alpha=0.01,Re,omega; double kv,K,dp,Fx[n+1][m+1],Fy[n+1][m+1],F[9][n+1][m+1]; static int i,j,k,mstep=40000; static int tag[n+1][m+1]; FILE *fp_0; char judge; FILE *fp_tag; FILE *fp_result_u,*fp_result_v,*fp_rho; int collesion(); int streaming(); int sfbound(); int rhouv(); void system();//声明库函数,此项实际上可有可无,不声明会有警告 void exit(); clock_t start, finish; //判定是否进行过计算 if((fp_0=fopen("result_u.txt","r"))!=NULL) { for(;;) { printf("已计算过流场,是否重新计算?(y/n)\n"); scanf("%s",&judge); if(judge=='n') { fclose(fp_0); exit(0); } else if(judge=='y') break; } } //printf("输入入口速度:\n");scanf("%lf",&uo); //printf("输入迭代次数:\n");scanf("%d",&mstep); //打开标记文件 if((fp_tag=fopen("tag.txt","r"))==NULL) { printf("无法打开文件\"tag.txt\",请确保文件存在!\n"); system("pause"); exit(0); } //创建记录文件 fp_result_u=fopen("result_u.txt","w+"); fp_result_v=fopen("result_v.txt","w+"); fp_rho=fopen("rho.txt","w+"); //读取固相标记 for(j=m;j>=0;j--) { for(i=0;i<=n;i++) fscanf(fp_tag,"%d",&tag[i][j]); } //计算基本参数 dp=0.0006; K=0.0000012; Re=uo*n/alpha; omega=1.0/(3.0*alpha+0.5); kv=((1.0/(3.0*alpha+0.5))-0.5)/3; cs=(((dx*dx)/(dt*dt))+((dy*dy)/(dt*dt)))/3; printf("基本参数:\nRe=%f omega=%f alpha=%f cs=%f\n\n",Re,omega,alpha,cs); //给w赋值 w[0]=4.0/9;for(i=1;i<=8;i++) { if(i<=4) w[i]=1.0/9;else w[i]=1.0/36; } printf("w0~w8:\nw[6]=%5f w[2]=%5f w[5]=%5f\nw[3]=%5f w[0]=%5f w[1]=%5f\nw[7]=%5f w[4]=%5f w[8]=%5f\n\n",w[6],w[2],w[5],w[3],w[0],w[1],w[7],w[4],w[8]); //给cx、cy赋值 cx[0]=0,cx[1]=1,cx[2]=0,cx[3]=-1,cx[4]=0,cx[5]=1,cx[6]=-1,cx[7]=-1,cx[8]=1; cy[0]=0,cy[1]=0,cy[2]=1,cy[3]=0,cy[4]=-1,cy[5]=1,cy[6]=1,cy[7]=-1,cy[8]=-1; //初始值 for(j=0;j<=m;j++) { for(i=0;i<=n;i++) { rho[i][j]=rhoo; u[i][j]=0.0; v[i][j]=0.0; } } for(j=601;j<=m-1;j++) u[0][j]=uo;//左边界进口速度 printf("开始迭代。。。\n"); start=clock(); for(kk=1;kk<=mstep;kk++)//循环迭代 { collesion(u,v,f,feq,rho,omega,w,cx,cy,n,m,cs,Fx,Fy,F,kv,K); streaming(f,n,m); sfbound(f,n,m,uo,tag); rhouv(f,rho,u,v,cx,cy,n,m,tag); if(kk%100==0) printf("总迭代次数为%5d 次,已迭代%5d 次。。。\n",mstep,kk); if(kk%100==0) printf("观察值:u[150][70]=%7.11f v[150][70]=%7.11f\n\n",u[150][70],v[150][70]); if(kk%100==0) printf("观察值:u[150][220]=%7.11f v[150][220]=%7.11f\n\n",u[150][220],v[150][220]); if(kk==mstep) printf("迭代完毕! \n"); } finish=clock(); printf("\n迭代耗时%.3fs\n",(double)(finish - start) / CLOCKS_PER_SEC); for(j=m;j>=0;j--) { for(i=0;i<=n;i++) fprintf(fp_result_u,"%7.11f ",u[i][j]); fprintf(fp_result_u,"\n"); } for(j=m;j>=0;j--) { for(i=0;i<=n;i++) fprintf(fp_result_v,"%7.11f ",v[i][j]); fprintf(fp_result_v,"\n"); } for(j=m;j>=0;j--) { for(i=0;i<=n;i++) fprintf(fp_rho,"%9.6f ",rho[i][j]); fprintf(fp_rho,"\n"); } printf("\n观察值:u[2][m-2]=%7.11f v[2][m-2]=%7.11f\n",u[2][m-2],v[2][m-2]);//观察值 fclose(fp_result_u); fclose(fp_result_v); fclose(fp_rho); fclose(fp_tag);//关闭文件 printf("\n程序运行完毕,"); system("pause"); }//主函数结束 //碰撞过程 int collesion(double u[n+1][m+1],double v[n+1][m+1],double f[9][n+1][m+1],double feq[9][n+1][m+1],double rho[n+1][m+1], double Fx[n+1][m+1],double Fy[n+1][m+1],double F[9][n+1][m+1],double kv,double K,double omega,double w[9], double cx[9],double cy[9],int a,int b,double cs){ int i,j,k; double t1,t2,t3,c1,c2; t3=cs*cs; for(i=0;i<=a;i++) { for(j=0;j<=b;j++) { c1=Fx[i][j]*cx[k]+Fy[i][j]*cy[k]; t1=u[i][j]*u[i][j]+v[i][j]*v[i][j]; for(k=0;k<=8;k++) { c2=u[i][j]*Fx[i][j]+v[i][j]*Fy[i][j]; t2=u[i][j]*cx[k]+v[i][j]*cy[k]; Fx[i][j]=-(kv/0.0000012)*u[i][j]; Fy[i][j]=-(kv/0.0000012)*v[i][j]; F[k][i][j]=rho[i][j]*(1-omega/2.0)*(3.0*c1+20.0*c1*t2-20.0*c2/3); feq[k][i][j]=rho[i][j]*w[k]*(1.0+3.0*t2+10.0*t2*t2-10.0*t1/3);//当ck=1时,cs*cs=1/3 f[k][i][j]=omega*feq[k][i][j]+(1.0-omega)*f[k][i][j]+F[k][i][j]; //if(i==2&&j==2&&k==1) printf("第%d次迭代结束:\n坐标(%d,%d)处t1=%9.6f t2=%9.6f t3=%9.6f u=%9.6f v=%9.6f\n",i,j,kk,t1,t2,t3,u[2][m-2],v[2][m-2]); } } } return(0);} //迁移过程 int streaming(double f[9][n+1][m+1],int a,int b){ int i,j; for(j=0;j<=b;j++) { for(i=a;i>=1;i--) f[1][i][j]=f[1][i-1][j]; for(i=0;i<=a-1;i++) f[3][i][j]=f[3][i+1][j]; } for(j=b;j>=1;j--) { for(i=0;i<=a;i++) f[2][i][j]=f[2][i][j-1]; for(i=a;i>=1;i--) f[5][i][j]=f[5][i-1][j-1]; for(i=0;i<=a-1;i++) f[6][i][j]=f[6][i+1][j-1]; } for(j=0;j<=b-1;j++) { for(i=0;i<=a;i++) f[4][i][j]=f[4][i][j+1]; for(i=0;i<=a-1;i++) f[7][i][j]=f[7][i+1][j+1]; for(i=a;i>=1;i--) f[8][i][j]=f[8][i-1][j+1]; } return(0); } //边界 int sfbound(double f[9][n+1][m+1],int a,int b,double uo,int tag[n+1][m+1]){ int i=0,j=0;double rhow; for(j=1;j<=b-1;j++) { for(i=1;i<=a-1;i++) { if(tag[i][j]==0) { if(tag[i-1][j]==1) f[1][i-1][j]=f[3][i-1][j]; if(tag[i][j-1]==1) f[2][i][j-1]=f[4][i][j-1]; if(tag[i+1][j]==1) f[3][i+1][j]=f[1][i+1][j]; if(tag[i][j+1]==1) f[4][i][j+1]=f[2][i][j+1]; if(tag[i-1][j-1]==1) f[5][i-1][j-1]=f[7][i-1][j-1]; if(tag[i+1][j-1]==1) f[6][i+1][j-1]=f[8][i+1][j-1]; if(tag[i+1][j+1]==1) f[7][i+1][j+1]=f[5][i+1][j+1]; if(tag[i-1][j+1]==1) f[8][i-1][j+1]=f[6][i-1][j+1]; } } } for(j=201;j<=b-1;j++) { rhow=(f[0][0][j]+f[2][0][j]+f[4][0][j]+2*(f[3][0][j]+f[6][0][j]+f[7][0][j]))/(1.0-uo); f[1][0][j]=f[3][0][j]+2.0*rhow*uo/3.0; f[5][0][j]=f[7][0][j]+rhow*uo/6.0; f[8][0][j]=f[6][0][j]+rhow*uo/6.0;//左边界 } //for(j=0;j<=b;j++) { f[3][a][j]=2*f[3][a-1][j]-f[3][a-2][j]; f[6][a][j]=2*f[6][a-1][j]-f[6][a-2][j]; f[7][a][j]=2*f[7][a-1][j]-f[7][a-2][j];} return(0); } //重新求解U、V int rhouv(double f[9][n+1][m+1],double rho[n+1][m+1],double u[n+1][m+1],double v[n+1][m+1],double cx[9],double cy[9],int a,int b,int tag[n+1][m+1]){ int i,j,k; double ssum; double usum; double vsum; for(j=0;j<=b;j++) { for(i=0;i<=a;i++) { ssum=0.0; for(k=0;k<=8;k++) { ssum=ssum+f[k][i][j]; } rho[i][j]=ssum; } } for(i=1;i<=a;i++) { for(j=1;j<=b-1;j++) { usum=0.0; vsum=0.0; for(k=0;k<=8;k++) { usum=usum+f[k][i][j]*cx[k]; vsum=vsum+f[k][i][j]*cy[k]; } u[i][j]=usum/rho[i][j]; v[i][j]=vsum/rho[i][j]; if(tag[i][j]==1) { u[i][j]=0.0; v[i][j]=0.0; } } } for(j=0;j<=b;j++) v[a][j]=0.0; return(0); } /* 下放为多孔介质区域,上方为电解液区域 整个区域的格子数为n*m,n为横向长度,m为纵向长度 */ #include "stdio.h" #include "math.h" #include "time.h" #define n 3200 #define m 2400 int kk=0; void main(){ static double f[9][n+1][m+1]; static double feq[9][n+1][m+1]; static double rho[n+1][m+1]; static double u[n+1][m+1]; static double v[n+1][m+1];//声明变量和函数 double w[9],cx[9],cy[9],uo=0.0000279,sumvelo=0.0,rhoo=5.0,dx=1.0,dy=1.0,dt=1.0,cs,alpha=0.01,Re,omega; double kv,K,dp,Fx[n+1][m+1],Fy[n+1][m+1],F[9][n+1][m+1]; static int i,j,k,mstep=40000; static int tag[n+1][m+1]; FILE *fp_0; char judge; FILE *fp_tag; FILE *fp_result_u,*fp_result_v,*fp_rho; int collesion(); int streaming(); int sfbound(); int rhouv(); void system();//声明库函数,此项实际上可有可无,不声明会有警告 void exit(); clock_t start, finish; //判定是否进行过计算 if((fp_0=fopen("result_u.txt","r"))!=NULL) { for(;;) { printf("已计算过流场,是否重新计算?(y/n)\n"); scanf("%s",&judge); if(judge=='n') { fclose(fp_0); exit(0); } else if(judge=='y') break; } } //printf("输入入口速度:\n");scanf("%lf",&uo); //printf("输入迭代次数:\n");scanf("%d",&mstep); //打开标记文件 if((fp_tag=fopen("tag.txt","r"))==NULL) { printf("无法打开文件\"tag.txt\",请确保文件存在!\n"); system("pause"); exit(0); } //创建记录文件 fp_result_u=fopen("result_u.txt","w+"); fp_result_v=fopen("result_v.txt","w+"); fp_rho=fopen("rho.txt","w+"); //读取固相标记 for(j=m;j>=0;j--) { for(i=0;i<=n;i++) fscanf(fp_tag,"%d",&tag[i][j]); } //计算基本参数 dp=0.0006; K=0.0000012; Re=uo*n/alpha; omega=1.0/(3.0*alpha+0.5); kv=((1.0/(3.0*alpha+0.5))-0.5)/3; cs=(((dx*dx)/(dt*dt))+((dy*dy)/(dt*dt)))/3; printf("基本参数:\nRe=%f omega=%f alpha=%f cs=%f\n\n",Re,omega,alpha,cs); //给w赋值 w[0]=4.0/9;for(i=1;i<=8;i++) { if(i<=4) w[i]=1.0/9;else w[i]=1.0/36; } printf("w0~w8:\nw[6]=%5f w[2]=%5f w[5]=%5f\nw[3]=%5f w[0]=%5f w[1]=%5f\nw[7]=%5f w[4]=%5f w[8]=%5f\n\n",w[6],w[2],w[5],w[3],w[0],w[1],w[7],w[4],w[8]); //给cx、cy赋值 cx[0]=0,cx[1]=1,cx[2]=0,cx[3]=-1,cx[4]=0,cx[5]=1,cx[6]=-1,cx[7]=-1,cx[8]=1; cy[0]=0,cy[1]=0,cy[2]=1,cy[3]=0,cy[4]=-1,cy[5]=1,cy[6]=1,cy[7]=-1,cy[8]=-1; //初始值 for(j=0;j<=m;j++) { for(i=0;i<=n;i++) { rho[i][j]=rhoo; u[i][j]=0.0; v[i][j]=0.0; } } for(j=601;j<=m-1;j++) u[0][j]=uo;//左边界进口速度 printf("开始迭代。。。\n"); start=clock(); for(kk=1;kk<=mstep;kk++)//循环迭代 { collesion(u,v,f,feq,rho,omega,w,cx,cy,n,m,cs,Fx,Fy,F,kv,K); streaming(f,n,m); sfbound(f,n,m,uo,tag); rhouv(f,rho,u,v,cx,cy,n,m,tag); if(kk%100==0) printf("总迭代次数为%5d 次,已迭代%5d 次。。。\n",mstep,kk); if(kk%100==0) printf("观察值:u[150][70]=%7.11f v[150][70]=%7.11f\n\n",u[150][70],v[150][70]); if(kk%100==0) printf("观察值:u[150][220]=%7.11f v[150][220]=%7.11f\n\n",u[150][220],v[150][220]); if(kk==mstep) printf("迭代完毕! \n"); } finish=clock(); printf("\n迭代耗时%.3fs\n",(double)(finish - start) / CLOCKS_PER_SEC); for(j=m;j>=0;j--) { for(i=0;i<=n;i++) fprintf(fp_result_u,"%7.11f ",u[i][j]); fprintf(fp_result_u,"\n"); } for(j=m;j>=0;j--) { for(i=0;i<=n;i++) fprintf(fp_result_v,"%7.11f ",v[i][j]); fprintf(fp_result_v,"\n"); } for(j=m;j>=0;j--) { for(i=0;i<=n;i++) fprintf(fp_rho,"%9.6f ",rho[i][j]); fprintf(fp_rho,"\n"); } printf("\n观察值:u[2][m-2]=%7.11f v[2][m-2]=%7.11f\n",u[2][m-2],v[2][m-2]);//观察值 fclose(fp_result_u); fclose(fp_result_v); fclose(fp_rho); fclose(fp_tag);//关闭文件 printf("\n程序运行完毕,"); system("pause"); }//主函数结束 //碰撞过程 int collesion(double u[n+1][m+1],double v[n+1][m+1],double f[9][n+1][m+1],double feq[9][n+1][m+1],double rho[n+1][m+1], double Fx[n+1][m+1],double Fy[n+1][m+1],double F[9][n+1][m+1],double kv,double K,double omega,double w[9], double cx[9],double cy[9],int a,int b,double cs){ int i,j,k; double t1,t2,t3,c1,c2; t3=cs*cs; for(i=0;i<=a;i++) { for(j=0;j<=b;j++) { c1=Fx[i][j]*cx[k]+Fy[i][j]*cy[k]; t1=u[i][j]*u[i][j]+v[i][j]*v[i][j]; for(k=0;k<=8;k++) { c2=u[i][j]*Fx[i][j]+v[i][j]*Fy[i][j]; t2=u[i][j]*cx[k]+v[i][j]*cy[k]; Fx[i][j]=-(kv/0.0000012)*u[i][j]; Fy[i][j]=-(kv/0.0000012)*v[i][j]; F[k][i][j]=rho[i][j]*(1-omega/2.0)*(3.0*c1+20.0*c1*t2-20.0*c2/3); feq[k][i][j]=rho[i][j]*w[k]*(1.0+3.0*t2+10.0*t2*t2-10.0*t1/3);//当ck=1时,cs*cs=1/3 f[k][i][j]=omega*feq[k][i][j]+(1.0-omega)*f[k][i][j]+F[k][i][j]; //if(i==2&&j==2&&k==1) printf("第%d次迭代结束:\n坐标(%d,%d)处t1=%9.6f t2=%9.6f t3=%9.6f u=%9.6f v=%9.6f\n",i,j,kk,t1,t2,t3,u[2][m-2],v[2][m-2]); } } } return(0);} //迁移过程 int streaming(double f[9][n+1][m+1],int a,int b){ int i,j; for(j=0;j<=b;j++) { for(i=a;i>=1;i--) f[1][i][j]=f[1][i-1][j]; for(i=0;i<=a-1;i++) f[3][i][j]=f[3][i+1][j]; } for(j=b;j>=1;j--) { for(i=0;i<=a;i++) f[2][i][j]=f[2][i][j-1]; for(i=a;i>=1;i--) f[5][i][j]=f[5][i-1][j-1]; for(i=0;i<=a-1;i++) f[6][i][j]=f[6][i+1][j-1]; } for(j=0;j<=b-1;j++) { for(i=0;i<=a;i++) f[4][i][j]=f[4][i][j+1]; for(i=0;i<=a-1;i++) f[7][i][j]=f[7][i+1][j+1]; for(i=a;i>=1;i--) f[8][i][j]=f[8][i-1][j+1]; } return(0); } //边界 int sfbound(double f[9][n+1][m+1],int a,int b,double uo,int tag[n+1][m+1]){ int i=0,j=0;double rhow; for(j=1;j<=b-1;j++) { for(i=1;i<=a-1;i++) { if(tag[i][j]==0) { if(tag[i-1][j]==1) f[1][i-1][j]=f[3][i-1][j]; if(tag[i][j-1]==1) f[2][i][j-1]=f[4][i][j-1]; if(tag[i+1][j]==1) f[3][i+1][j]=f[1][i+1][j]; if(tag[i][j+1]==1) f[4][i][j+1]=f[2][i][j+1]; if(tag[i-1][j-1]==1) f[5][i-1][j-1]=f[7][i-1][j-1]; if(tag[i+1][j-1]==1) f[6][i+1][j-1]=f[8][i+1][j-1]; if(tag[i+1][j+1]==1) f[7][i+1][j+1]=f[5][i+1][j+1]; if(tag[i-1][j+1]==1) f[8][i-1][j+1]=f[6][i-1][j+1]; } } } for(j=201;j<=b-1;j++) { rhow=(f[0][0][j]+f[2][0][j]+f[4][0][j]+2*(f[3][0][j]+f[6][0][j]+f[7][0][j]))/(1.0-uo); f[1][0][j]=f[3][0][j]+2.0*rhow*uo/3.0; f[5][0][j]=f[7][0][j]+rhow*uo/6.0; f[8][0][j]=f[6][0][j]+rhow*uo/6.0;//左边界 } //for(j=0;j<=b;j++) { f[3][a][j]=2*f[3][a-1][j]-f[3][a-2][j]; f[6][a][j]=2*f[6][a-1][j]-f[6][a-2][j]; f[7][a][j]=2*f[7][a-1][j]-f[7][a-2][j];} return(0); } //重新求解U、V int rhouv(double f[9][n+1][m+1],double rho[n+1][m+1],double u[n+1][m+1],double v[n+1][m+1],double cx[9],double cy[9],int a,int b,int tag[n+1][m+1]){ int i,j,k; double ssum; double usum; double vsum; for(j=0;j<=b;j++) { for(i=0;i<=a;i++) { ssum=0.0; for(k=0;k<=8;k++) { ssum=ssum+f[k][i][j]; } rho[i][j]=ssum; } } for(i=1;i<=a;i++) { for(j=1;j<=b-1;j++) { usum=0.0; vsum=0.0; for(k=0;k<=8;k++) { usum=usum+f[k][i][j]*cx[k]; vsum=vsum+f[k][i][j]*cy[k]; } u[i][j]=usum/rho[i][j]; v[i][j]=vsum/rho[i][j]; if(tag[i][j]==1) { u[i][j]=0.0; v[i][j]=0.0; } } } for(j=0;j<=b;j++) v[a][j]=0.0; return(0); }

为什么显示窗口,已停止工作?

#define HAVE_REMOTE #include <pcap.h> #include <remote-ext.h> /* 4 bytes IP address */ typedef struct ip_address { u_char byte1; u_char byte2; u_char byte3; u_char byte4; }ip_address; /* IPv4 header */ typedef struct ip_header { u_char ver_ihl; /* Version (4 bits) + Internet header length (4 bits)*/ u_char tos; /* Type of service */ u_short tlen; /* Total length */ u_short identification; /* Identification */ u_short flags_fo; /* Flags (3 bits) + Fragment offset (13 bits)*/ u_char ttl; /* Time to live */ u_char proto; /* Protocol */ u_short crc; /* Header checksum */ ip_address saddr;/* Source address */ ip_address daddr;/* Destination address */ u_int op_pad; /* Option + Padding */ }ip_header; /* UDP header */ typedef struct udp_header { u_short sport; /* Source port */ u_short dport; /* Destination port */ u_short len; /* Datagram length */ u_short crc; /* Checksum */ }udp_header; /* Prototype of the pachet handler */ void packet_handler(u_char* param, const struct pcap_pkthdr* header, const u_char* pkt_data); int main() { pcap_if_t* alldevs; pcap_if_t* d; int inum; int i = 0; pcap_t* adhandle; char errbuf[PCAP_ERRBUF_SIZE]; u_int netmask; char packet_filter[] = "ip and udp"; struct bpf_program fcode; /* Retrieve the device list */ if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL, &alldevs, errbuf) == -1) { fprintf(stderr, "Error in pcap_findalldevs: %s\n", errbuf); exit(1); } /* Print the list*/ for (d = alldevs; d; d = d->next) { printf("%d. %s", ++ i, d->name); if (d->description) { printf(" (%s)\n", d->description); } else { printf(" (No description available)\n"); } } if (i == 0) { printf("\nNo interfaces found! Make sure Winpcap is installed.\n"); return -1; } printf("Enter the interface number (1 - %d):", i); scanf("%d", &inum); if (inum < 1 || inum > i) { printf("\nInterface number out of range.\n"); /* Free the device list */ pcap_freealldevs(alldevs); return -1; } /* Jump to the selected adapter */ for (d = alldevs; d; d = d->next); /* Open the adapter */ if ((adhandle = pcap_open(d->name, /*name of the device */ 65536, /* portion of the packet to capture */ /* 65536 grants that the whole packet will be captured on all the MACs */ PCAP_OPENFLAG_PROMISCUOUS, /* promiscuous mode */ 1000, /* read timeout */ NULL, /* remote authentication */ errbuf /* error buffer */ )) == NULL) { fprintf(stderr, "\nUnable to open the adapter. %s is not supported by Winpcap\n"); /* Free the devices list */ pcap_freealldevs(alldevs); return -1; } /* Check the link layer. We support only Ethernet for simplicity */ if (pcap_datalink(adhandle) != DLT_EN10MB) { fprintf(stderr, "\nThis program works only on Ethernet networks.\n"); /* Free the devices list */ pcap_freealldevs(alldevs); return -1; } if (d->addresses != NULL) { /* Retrieve the mask of the first address of the interface */ netmask = ((struct sockaddr_in *)(d->addresses->netmask))->sin_addr.S_un.S_addr; } else { /* If the interface is without addresses we suppose to be in a C class network */ netmask = 0xffffffff; } /* complie the filter */ if (pcap_compile(adhandle, &fcode, packet_filter, 1, netmask) < 0) { fprintf(stderr, "\nUnable to compile the packet filter. Check the syntax.\n"); /* Free the devices list */ pcap_freealldevs(alldevs); return -1; } /* set the filter */ if (pcap_setfilter(adhandle, &fcode) < 0) { fprintf(stderr, "\nError setting the filter.\n"); /* Free the devices list */ pcap_freealldevs(alldevs); return -1; } printf("\nlistening on %s ...\n", d->description); /* At this point,we don't need any more the device list. Free it */ pcap_freealldevs(alldevs); /* Start the capture */ pcap_loop(adhandle, 0, packet_handler, NULL); return 1; } /* Callback function invoked by libpcap for every incoming packet */ void packet_handler(u_char* param, const struct pcap_pkthdr* header, const u_char* pkt_data){ struct tm* ltime; char timestr[16]; ip_header* ih; udp_header* uh; u_int ip_len; u_short sport, dport; /* convert the timestamp to readable format convert the TIMESTAMP to可读格式*/ ltime = localtime(&header->ts.tv_sec); strftime(timestr, sizeof(timestr), "%H:%M:%S", ltime); /* print timestamp and length of the packet */ printf("%s.%.6d len: %d ", timestr, header->ts.tv_usec, header->len); /* retrieve the position of the ip header */ ih = (ip_header*)(pkt_data + 14); /* length of ethernet header */ /* retrieve the position of the udp header */ ip_len = (ih->ver_ihl & 0xf) * 4; uh = (udp_header*)((u_char*)ih + ip_len); /* convert from network byte order to host byte order */ /*sport = ntohs(uh->sport); dport = ntohs(uh->dport);*/ /* print ip addresses and udp ports */ printf("%d.%d.%d.%d -> %d.%d.%d.%d\n", ih->saddr.byte1, ih->saddr.byte2, ih->saddr.byte3, ih->saddr.byte4, /*sport,*/ ih->daddr.byte1, ih->daddr.byte2, ih->daddr.byte3, ih->daddr.byte4 /*dport*/); }

关于codeblocks的,出现停止工作的问题

最近在codeblocks上写了一个关于数据结构的单链表的代码,但是运行的时候总是运行到一半就会出现停止工作,并且显示出现了一个问题,导致程序停止正常工作。。。的字样,拿我同学的代码来运行,在人家的电脑上运行的好好地,在我上面却报错,改掉了错误还和刚才一样,请问路过的大神是怎么回事啊这是

Android 调试中eclipse一直提示adb.exe停止工作

如题,已试过:各种重启不行,更换带补丁adb.exe不行,重新配置环境变量不行,禁用电脑上管理软件不行 求大神解决

winform程序安装后启动提示停止工作,clr20r3错误。求大神解答!

自己写的C#程序,打包后在有的电脑上安装可以运行,有的安装后提示停止工作,是什么原因呢,该怎么解决呢?求大神帮忙!

如何停止py.程序的运行

如何停止run.py的运行 ``` import run import os import cv2 import sys ... #前面代码省略 def age(self): run.main() age=run.val QMessageBox.about(self, '年龄', '%d' % (val)) if __name__ == "__main__": app = QtWidgets.QApplication(sys.argv) window = Mywindow() window.show() sys.exit(app.exec_()) ``` run.py是关于年龄估计方面的神经网络代码。在pyqt5做出这个GUI,执行age函数,怎么在QMessageBox后面停止run的运行??? 拜托各位大佬

求解,C++运行时 显示停止工作

#include<iostream> #include<cstring> using namespace std; void str_(char strs[100],int i); int main() { int i; char str[100]; cout<<"请输入一串字符"<<endl; cin>>str; while(str[i]!='\0') { i++; } str_(str,i); return 0; } int judge(char string[100]) { int len; int i=0; int a,b; int m,n; while(string[i]!='\0') { i++; } if(i%2==0) { a=i/2-1; b=(i/2); } else { a=(i/2)-1; b=(i/2)+1; } for(m=a,n=b;m>=0,n<i;m--,n++) { if(string[m]==string[n]) { continue; } else { len=n-m-1; break; } } if(n==i) { return n; } else return len; } void str_(char strs[100],int i) { char ss[100]; int p,q; int num,count; if(i%2==0) { num=0; } else { num=1; } while(i>=0) { for(p=0;p<strlen(strs);p++) { for(q=1;q<=(strlen(strs)-p);q++) { strncpy(ss,strs+p,q); ss[p+q]='\0'; count=judge(ss); if(count>num) { num=count; i--; continue; } else { i--; continue; } } } } cout<<"得到的最大回文数是:"<<num<<endl; }

vs2013启动时报错 已停止工作 请大神们帮帮忙看下

vs2013 启动时报错 已停止工作,系统 win10用了大半年了 ,今天一启动就这样。试过修复重装 都没有用 。。 windows的日志信息如下: 错误应用程序名称: devenv.exe,版本: 12.0.21005.1,时间戳: 0x524fcb34 错误模块名称: unknown,版本: 0.0.0.0,时间戳: 0x00000000 异常代码: 0xc0000005 错误偏移量: 0x0d35dba2 错误进程 ID: 0x3280 错误应用程序启动时间: 0x01d1f12ad54f9a8b 错误应用程序路径: C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe 错误模块路径: unknown 报告 ID: 571136d8-cd25-4d5c-8ea6-7af57a4dd736 错误程序包全名: 请大神们帮帮忙看下 谢谢了

Java(TM) Platform SE binary已停止工作?

在使用ant自动跑jmeter接口脚本时,遇到Java(TM) Platform SE binary已停止工作 ![图片说明](https://img-ask.csdn.net/upload/201904/02/1554175543_585595.png) 报错信息 ![图片说明](https://img-ask.csdn.net/upload/201904/02/1554175589_538710.png) 问题签名: 问题事件名称: APPCRASH 应用程序名: java.exe 应用程序版本: 8.0.201.9 应用程序时间戳: 5c15be66 故障模块名称: java.exe 故障模块版本: 8.0.201.9 故障模块时间戳: 5c15be66 异常代码: c0000005 异常偏移: 000000000000ae4b OS 版本: 6.1.7601.2.1.0.256.48 区域设置 ID: 2052 其他信息 1: 3d15 其他信息 2: 3d15e13e7ac7093800f922e75e315839 其他信息 3: 3afb 其他信息 4: 3afb0272008e037ed2948ea19610e12d 电脑没有google输入法, 检查了环境变量, 重新装了jdk jre文件 将java.exe文件的兼容性选择了window 7(我的电脑系统是window 7) 都没有解决这个问题

shell脚本在运行时出现"已杀死"停止运行

脚本大致结构如下: #!/bin/bash configure(){} start(){} restart(){ stop start} #我想做一个每隔两分钟就重新启动一次的功能,写了以下的函数: autorestart(){ restart sleep 2m autorestart} 然后运行脚本,用autorestart这个功能 第一次的restart成功了 但是第二次在执行restart时刚刚走到stop命令程序就停止了 出现了已杀死的提示 是这个函数不能重载的原因吗 有没有什么解决的办法呢 补个图 ![图片说明](https://img-ask.csdn.net/upload/201806/21/1529572479_147041.png)

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

点沙成金:英特尔芯片制造全过程揭密

“亚马逊丛林里的蝴蝶扇动几下翅膀就可能引起两周后美国德州的一次飓风……” 这句人人皆知的话最初用来描述非线性系统中微小参数的变化所引起的系统极大变化。 而在更长的时间尺度内,我们所生活的这个世界就是这样一个异常复杂的非线性系统…… 水泥、穹顶、透视——关于时间与技艺的蝴蝶效应 公元前3000年,古埃及人将尼罗河中挖出的泥浆与纳特龙盐湖中的矿物盐混合,再掺入煅烧石灰石制成的石灰,由此得来了人...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

你打算用Java 8一辈子都不打算升级到Java 14,真香

我们程序员应该抱着尝鲜、猎奇的心态,否则就容易固步自封,技术停滞不前。

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

《Oracle Java SE编程自学与面试指南》最佳学习路线图(2020最新版)

正确选择比瞎努力更重要!

一文带你入门Java Stream流,太强了

两个星期以前,就有读者强烈要求我写一篇 Java Stream 流的文章,我说市面上不是已经有很多了吗,结果你猜他怎么说:“就想看你写的啊!”你看你看,多么苍白的喜欢啊。那就“勉为其难”写一篇吧,嘻嘻。 单从“Stream”这个单词上来看,它似乎和 java.io 包下的 InputStream 和 OutputStream 有些关系。实际上呢,没毛关系。Java 8 新增的 Stream 是为...

立即提问
相关内容推荐