Unexpected terimnation

This is a discussion on Unexpected terimnation within the C Programming forums, part of the General Programming Boards category; why does this program terminate unexpedly when the control reaches line no.33 Code: #include<stdio.h> #include<string.h> void swap(char *, char *); ...

  1. #1
    Registered User
    Join Date
    Aug 2011
    Posts
    385

    Unexpected terimnation

    why does this program terminate unexpedly when the control reaches line no.33

    Code:
    #include<stdio.h>
    #include<string.h>
     
    void swap(char *, char *); 
    void sort(int (*)(const char *, const char *), void(*)(char *,char *), char*[]);
     
    int main()
    {
        char *names[] = {"rakesh", "rakshas" , "Kalantari" , "phisaddi"}; int i;
     
        void swap(char *,char *);
     
        sort(strcmp, swap, names);
    
    	for(i=0;i<4;i++)
    		printf("\n%s",names[i]);
    }
     
    void sort(int (*strcmp)(const char *, const char *), void (*swap)(char *,char *), char **name)
    {
    	int i,j;
    
    	for(i=1;i<=3;i++)
    		for(j=1;j<=4-i;j++)
    			if(strcmp(name[j-1],name[j])>0)
    				swap(name[j-1],name[j]);
    }
    
    void swap(char *s, char *t)
    {
    	char temp[10];
    	strcpy(temp,t);
    	strcpy(t,s);
    	strcpy(s,temp);
    }

  2. #2
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    22,306
    The problem is that the pointers point to the first character of string literals. As such, modifying what the pointers point to results in undefined behaviour.

    If you want to swap the strings, you have to swap the pointers, not use strcpy to write to what the pointers point to.
    C + C++ Compiler: MinGW port of GCC
    Version Control System: Bazaar

    Look up a C++ Reference and learn How To Ask Questions The Smart Way

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Unexpected output
    By juice in forum C Programming
    Replies: 24
    Last Post: 11-18-2011, 11:18 PM
  2. unexpected output
    By crash88 in forum C Programming
    Replies: 2
    Last Post: 05-16-2006, 10:03 PM
  3. Unexpected Error
    By Vendicate in forum Linux Programming
    Replies: 7
    Last Post: 04-04-2006, 01:01 PM
  4. Unexpected results
    By Syked4 in forum C Programming
    Replies: 2
    Last Post: 06-07-2005, 10:41 PM
  5. Unexpected behaviour
    By fnoyan in forum C++ Programming
    Replies: 5
    Last Post: 03-05-2005, 09:45 AM

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21