LinuxForum.Fans
Тема

Ошибка сегментации!

Автор: droncheek 5 сообщений 2114 просмотров
#28012

Программа не выполняется из-за ошибки сегментации.
А код токой:

text

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
.
.
.
int i,k,l,b;
int m=0,a=0,c1=1,c2=0;
char adr[300],cmd[300];
char poisk_sist='n';
.
.
.
main()
 {
  .
  .
  .
  if (poisk_sist=='n') opred();
  .
  .
  .
 }
opred()
 {
  int a1,b=0;
  char p1[7]="google";

for (a=0;adr[a]!='/0';a++) { if (adr[a]==p1[b]) // На это место указывает отладчик. . . . } }

#28042

Нужно перед циклом вставить

memset ((void *)adr, 0, sizeof(char) * 300);

#28058
droncheek написал:
Программа не выполняется из-за ошибки сегментации.
А код токой:
text

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
.
.
.
int i,k,l,b;
int m=0,a=0,c1=1,c2=0;
char adr[300],cmd[300];
char poisk_sist='n';
.
.
.
main()
 {
  .
  .
  .
  if (poisk_sist=='n') opred();
  .
  .
  .
 }
opred()
 {
  int a1,b=0;
  char p1[7]="google";

for (a=0;adr[a]!='/0';a++) { if (adr[a]==p1[b]) // На это место указывает отладчик. . . . } }

Что означает '/0' ?

#28147
CyberDaemon написал:
Что означает '/0' ?

очепятка наверное.
должно быть либо 0, либо \0.
droncheek, напишите просто:

text
for (a=0;adr[a];a++)
#28151
drBatty написал:

droncheek, напишите просто:
text
for (a=0;adr[a];a++)

Если не забить массив нулями предварительно, то не прокатит. Мало ли какой там мусор лежать может? Можно просто вылететь за границы массива

Войдите или зарегистрируйтесь, чтобы ответить.