Potrzebuje pomocy z tym kodem , wywala mi ciągle błąd segmentation fault (core dumped) , nie moge go znaleźć.
Cały program sklada się z 3 plików i ma sortować tablice których komórki zawierają tekst.
Jestem początkującym programistą więc proszę o wyrozumiałość i pomoc :)
**DEKLARACJA FUNKCJI **
#ifndef sortstr_h
#define sortstr_h
char **sortstr (char **tab, int size);
#endif
GŁÓWNY PROGRAM
#include <stdio.h>
#include "sortstr.h"
#include <string.h>
#include <stdlib.h>
void instruction(){
printf("\nzad17\n");
printf("usage: ./zad17 -n name\n\nn");
printf("name:\n");
printf("sortstr - for sort string\n\n");
}
int main(int argc, char **argv){
int size=0;
char** tabz;
// char *tabz[] = {"ala", "slon","slon2", "AGH", "mjhngvukybjnj.kunlu", "piwo"};
if(argc!=3){
instruction();
return -1;
}
if(strcmp(argv[1],"-n")==0 && strcmp(argv[2],"sortstr")==0){
printf("\n\nPodaj rozmiar tablicy\n");
scanf("%d",&size);
tabz = (char**)malloc(size*sizeof(char*));
printf("\n");
printf("\nTo jest ilośc slow które mozesz wpisac %d\n",size);
printf("\nWpisz slowa ktore chcesz posortowac wciskajac enter po kazdej:\n\n");
for(int i=0; i<size; i++) {
scanf("%s",&tabz[i]);
}
sortstr (tabz,size);
for(int i = 0; i < size; i++){
printf("%s\n", tabz[i]);
}
return 0;
}
free(tabz);
}
**
FUNKCJA SORTUJĄCA**
#include"sortstr.h"
#include<string.h>
char **sortstr (char **tab, int size){
int i, j;
char *temp;
for (i = 0; i<size-1; i++)
{
for (j=0; j<size-1-i; j++)
{
if (strcmp(tab[j],tab[j+1])>0)
{
temp = tab[j+1];
tab[j+1] = tab[j];
tab[j] = temp;
}
}
}
return tab;
}