Sponsored Content
Full Discussion: why segment fault,
Top Forums Programming why segment fault, Post 302570613 by yanglei_fage on Thursday 3rd of November 2011 10:03:31 PM
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..
 

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

5. 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

6. 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

7. 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

8. 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

9. 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

10. 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
NAME(1) 						      General Commands Manual							   NAME(1)

NAME
ticker - scroll messages across the screen SYNOPSIS
ticker [options] [message] DESCRIPTION
ticker is a program that continually scrolls a given message across the screen. There is also an interface to allow other programs to change the message. KEYS
+, [up arrow] Increase scroll speed. -, [down arrw] Decrease scroll speed. [space] Pause. Press any key to unpause. OPTIONS
-h, --help Show summary of options. -u, --upper Scroll text on the top line of the screen. (Default) -l, --lower Scroll text on the bottom line of the screen. -fcolor, --foreground=color Use the specified color as the forground color of the text that is scrolled. The colors that may be used are: black gray red brightred green brightgreen brown yellow blue brightblue magenta brightmagenta cyan brightcyan lightgray white -bcolor, --background=color Use the specified color as the background color of the text that is scrolled. On most terminals, the background color can only be one of the colors listed in the first column above. -dsecs, --delay=secs Number of seconds delay between updates of the display. This controls how fast the text scrolls. You may use decimals to specify faster scroll speeds. The default delay is 1 second; I find 0.1 more pleasing. -snum, --sysv=num Read messages to display from the sysv shared memory segment with an id of num. This is only for use by other programs that need to be able to change the text ticker displays. -Snum, --size=num Size of the shared memory segment to read, when using shared memory communication with another program. Default is 80 characters. -csecs, --check=secs Minimum time between checks of the shared memory segment for a new message. Default is every second. It may in fact check consider- ably less often, as it only checks for a new message once per time that the current message scrolls around the screen. message The message to scroll. Required unless -s is used, in which case it is optional. NOTES
To use the other 23 or so lines of your screen for something useful while the ticker is running, you might want to use splitvt(1) AUTHOR
Joey Hess <joey@kitenet.net> NAME(1)
All times are GMT -4. The time now is 10:48 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy