Jump to content

Problemas em Linux


Localhost
 Share

Recommended Posts

Olá pessoal, bem o Linux está-me a dar alguns problemas em termos de programação e confesso que tinha muitas mais facilidades no Windows...

Ora bem é o seguinte eu estou aqui com um projecto que está a dar mesmo pica  😉, no entanto o Linux não me deixa ver os resultados, eu compilo tudo direitinho mas quando chega a hora de executar aparece o seguinte: Segmentation Fault, alguém me podia ajudar? Obrigado desde já, a todos!

here since 2009

Link to comment
Share on other sites

Desculpa esqueci-me do código  ?

Aí vai:

#include <stdio.h>
#include <string.h>

int main()
{
  int x,i,len=4;
  char str[4];
  char abc[26] = {'a','b','c','d',
                 'e','f','g','h','i','j','l','m','n','o','p','q','r','s',
                 't','u','v','x','z','k','y','\0'};
  while(strlen(str) <= len)
  {
    srand(time(NULL));
    x = rand() % 26 + 1;
    str[i] = abc[x];
    i++;
  }
  printf("%s", str);
  return 0;
}

here since 2009

Link to comment
Share on other sites

Não sei porquê, mas devido ao facto de não teres o str inicializado, o strlen estava a devolver-me o valor 7, pelo que não processava o ciclo.

Isso do símbolo é porque estás a escrever mais caracteres para o array do que aqueles que ele suporta.

EDIT: Já sei o porquê do strlen dar 7. É que este utiliza o '\0' como marca do fim de contagem do número de caracteres, e devido ao facto de não teres inicializado o str, o strlen vai dar um valor diferente que nunca se saberá qual é, depende sempre da existência de um 0 na memória.

The length of a C string is determined by the terminating null-character: A C string is as long as the amount of characters between the beginning of the string and the terminating null character.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.