find the err in code

ismitevijay's Avatar, Join Date: Aug 2006
Light Poster
hello all, this is the name sorting programm. i m passing pointers to strings as arguments.
the code according to me appears right bu i get segmentation fault.
pl z help
Code:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void namesort(char *name[],int n);

int main()
{
	char *name[10];
	char name1[20];
	char *p;
	int n;
	int i;
	int len;
	
	printf("ENTER THE NUMBER OF NAMES-----> ");
	scanf("%d",&n);
	
	for(i=0;i<n;i++)
	{
		printf("\n enter the name:\n ");
		scanf("%s",&name1);
		len=strlen(name1);
		p=malloc(len+1);
		strcpy(p,name1);
		name[i]=strdup(p);
	}
	
	printf("%s \n ",name[1]);
	
	namesort(name,n);
	
	printf(" \n THE NAMES AFTER SORTING \n");
	for(i=0;i<n;i++)
	{
		printf(" %s \n",name[i]);
	}
	printf("\n");
	return 0;
}

void namesort(char *name[],int n)
{
	char temp[20];
	printf(" hi\n");
	printf(" %s ",name[0]);
	int i;
	int j;
	for(i=0;i<n;i++)
	{
		for(j=0;j<(n-1);j++)
			printf(" %s ",name[j]);
		if(strcmp(name[j],name[j+1])>0)
			
		{
			strcpy(temp,name[j]);
			strcpy(name[j],name[j+1]);
			strcpy(name[j+1],temp);
			
		}
		
	}
}
i get segmenattion fault:
plz help

the o/p of prog is :

ENTER THE NUMBER OF NAMES-----> 2

enter the name:
hy

enter the name:
ugg
ugg
hi
Segmentation fault

this was o/p nd im using gcc compiler.
0
shabbir's Avatar, Join Date: Jul 2004
Go4Expert Founder
Refer to My reply in thread http://www.go4expert.com/showthread.php?t=1264#post3899