why segment fault,


 
Thread Tools Search this Thread
Top Forums Programming why segment fault,
# 1  
Old 11-03-2011
why segment fault,

I always get segment fault, why? can sb help me and modify it, I have spend on much time on


Code:
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
#include <string.h>
#define MAX 10
pthread_t thread[2];

void *thread1()
{

    int *a[16];
    int i, n;


    for (i = 0; i < 16; i++)
    {

    n=(size_t) ((rand() * 256.0) / (RAND_MAX + 1.0)) + 1;
        a[i] = (int*)malloc(n);
    if (a[i]==NULL)
        {
            printf("Error allocating memory!");
            exit (1);
        }

       printf("malloc a[%d]\n",i);

    }

    for (i = 16; i > 0; i--)
    {

        n=(size_t) ((rand() * 256.0) / (RAND_MAX + 1.0)) + 1;
        printf("remalloc a[%d]\n",i-1);
        a[i - 1] = (int*)realloc(a[i - 1], n);
    if ( a[i - 1]==NULL)
        {
            printf("Error reallocating memory!");
            exit (1);
        }


    }
    for (i = 0; i < 16; i += 2 )
        free(a[i]);
        printf("free1 a[%d]\n",i);
    for (i = 16; i > 0; i -= 2)
        free(a[i - 1]);
        printf("free2 a[%d]\n",i-1);
        pthread_exit(NULL);
}


void thread_create(void)
{
        int temp,i;
        memset(&thread, 0, sizeof(thread));          //comment1
        /**/
       for (i = 2; i > 0; i--)
{
        if((temp = pthread_create(&thread[i], NULL, thread1, NULL)) != 0)       //comment2
                printf("thread create failed\n");
        else
                printf("thread create\n");
}
}

void thread_wait(void)
{
   int i;
   for (i = 2; i > 0; i--)
{
        if(thread[i] !=0) {                   //comment4
                pthread_join(thread[i],NULL);
                printf("1\n");
        }
}
}

int main()
{

        printf("\n");
        thread_create();
        printf("\n");
        thread_wait();

        return 0;
}


Last edited by yanglei_fage; 11-04-2011 at 12:04 AM..
# 2  
Old 11-04-2011
Array index starts from zero. You are trying to access thread[2].

Code:
for (i = 2; i > 0; i--)

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

Segment fault related to strlen.S

Hello, This function was copied into my code, which was compiled without error/warning, but when executed there is always Segmentation fault at the end after the output (which seems correct!): void get_hashes(unsigned int hash, unsigned char *in) { unsigned char *str = in; int pos =... (7 Replies)
Discussion started by: yifangt
7 Replies

2. Programming

Segment fault for C++ program when return vector

I am trying to reverse complement DNA sequence (string) with a short c++ code using boost library. Code was compiled without any warning/error, but ran into Segmentation fault. My guess is the function to return a vector, but not sure. #include <iostream> #include <fstream> #include <string>... (14 Replies)
Discussion started by: yifangt
14 Replies

3. Programming

Using gdb, ignore beginning segmentation fault until reproduce environment segmentation fault

I use a binary name (ie polo) it gets some parameter , so for debugging normally i do this : i wrote script for watchdog my app (polo) and check every second if it's not running then start it , the problem is , if my app , remain in state of segmentation fault for a while (ie 15 ... (6 Replies)
Discussion started by: pooyair
6 Replies

4. Programming

Segment-fault handling for pthreads

Hi I have struggling a week to fix a program , in the begining i got SIGBUS , but after many attempts still the program gets SIGSEGV segment fault , In bellow i post the seg fault log + source codes. would really appreciate if experts help me to fix this segment fault error. any advice is... (2 Replies)
Discussion started by: pooyair
2 Replies

5. Programming

Data segment or Text segment

Hi, Whether the following piece of code is placed in the read-only memory of code (text) segment or data segment? char *a = "Hello"; I am getting two different answers while searching in google :( that's why the confusion is (7 Replies)
Discussion started by: royalibrahim
7 Replies

6. Programming

Segment Violation

Hi to all. I'm reciving a "Segment violation" error from this code and I don't know why. void insertAtEnd(NodeType *pList) { char element; printf("Introduce a element: \n"); setbuf(stdin, NULL); scanf("%c", &element); //Find the end of the list; while... (4 Replies)
Discussion started by: daniel.gbaena
4 Replies

7. Programming

How can I know where the segment of memory is all Zero?

I mean, I malloc a segment of memory, maybe 1k maybe 20bytes.. assume the pointer is pMem How can I know the content pMem refered is all Zero or \0 . I know memcmp but the second parameter should another memory address... thanx (4 Replies)
Discussion started by: macroideal
4 Replies

8. Programming

a strange segment fault about ltp-posix test

Hi all In the ltp-posix test,there is a case in open_posix_testsuite\conformance\interfaces\timer_gettime\speculative/6-1.c I run the above code,it will has a segment fault, if I modify it to below,it works well Anybody can tell me why? (1 Reply)
Discussion started by: yanglei_fage
1 Replies

9. Shell Programming and Scripting

extract segment

Hey all, could someone please direct me on how to extract a segment from a file between two tags? Thanks! (1 Reply)
Discussion started by: mpang_
1 Replies

10. Programming

Segment Fault

When run it, segment fault. What is wrong? #include <stdio.h> #include <stdlib.h> const int max =20; //**************************************************** // Input Matrix //**************************************************** void inMatrixAA(int *AA, int row, int col)... (9 Replies)
Discussion started by: zhshqzyc
9 Replies
Login or Register to Ask a Question