Claro que gosto de programacao e quero ser um bom programador, é que eu ainda não conhecia o comando malloc, que por sinal você tinha razao e ajudou mt. O programa que eu quero esta pronto praticamente, só que tem um problema, ele roda perfeitamente, mas no final aparece aquela mensagem PROJETOCOMP.exe parou de funcionar etc. O que eu não entendo é q só aparece as vezes, não sei o que pode ser.
 
	OBS: Quando só tinha uma funcao no codigo não aparecia, lembrando que uso o Code::Blocks,
 
	 
	#include <stdio.h>
#include <stdlib.h>
#include <string.h>
	void selectionsort(int vetor[], int n){
	    int Menor, aux;
    int a, b, c;
	    for ( a = 0; a < n; a++ ) {
        Menor = a;
	        for ( b = a + 1; b < n; b++ ) {
            if ( vetor[Menor] > vetor[b] )
                Menor = b;
        }
	        if ( a != Menor ) {
            aux = vetor[a];
            vetor[a] = vetor[Menor];
            vetor[Menor] = aux;
        }
    }
}
	void bubblesort (int vetor[], int n){
	    int i,j, k = n, aux;
	    for(i = 0; i<n; i++){
        for (j = 0; j<k; j++){
            if(vetor[j]>vetor[j+1]){
                aux = vetor[j];
                vetor[j] = vetor[j+1];
                vetor[j+1] = aux;
            }
        }
        k--;
    }
}
	int main() {
	    int l, k, i, t;
	    printf ( "Quantas linhas possuira o arquivo? " );
    scanf ( "%d", &t );
	    FILE *fp1 = fopen ( "ProjetoComp.txt", "w" );
	    if ( fp1 == NULL ) {
        printf ( "não foi possivel abrir o arquivo\n" );
        getchar();
        return 0;
    }
	    int **matriz = (int**)malloc( sizeof(int**) * t );
    for(i=0; i<t; i++ )
        matriz[i]=(int*)malloc(sizeof(int*)*2);
	    for ( k = 0 ; k < t;  k++ ) {
        printf ( "Informe os elementos da %da. linha:\n", ( k + 1 ) );
	        for ( l = 0; l < 2; l++ ) {
            scanf ( "%d", &matriz[k][l] );
            fprintf ( fp1, "%d\t", matriz[k][l]  );
        }
        fprintf ( fp1, "\n");
        printf ( "\n" );
    }
	    fclose ( fp1 );
	    FILE *fp2 = fopen("ProjetoComp.txt","r");
	    if(fp2 == NULL){
        printf("não foi possivel abrir o arquivo\n");
        getchar();
        return ;
    }
	    k=0;
    while ( fscanf(fp2, "%d %d%*c", &matriz[k][0], &matriz[k][1] ) != EOF ){
        printf("linha %d - %d %d\n", k + 1, matriz[k][0], matriz[k][1]);
        k++;
    }
	    printf("\n");
	    int *vetor = (int*)malloc( (sizeof(int*) * t) * 2 );
	    k=0;
    for(l=0; l<t; l++){
        for( k=k, i=0 ; i<2; k++, i++ ){
            vetor[k] = matriz[l][i];
            printf("%d, ", vetor[k]);
        }
    }
	    printf("\n\n");
    printf("Selection Sort!\n");
	    selectionsort(vetor, t*2);
	    for (i=0; i<t*2 ; i++ ) {
        printf("%d, ", vetor[i]);
    }
	
    printf("\n\n");
    printf("Bubble Sort!\n");
	    bubblesort (vetor, t*2);
	    for (i=0; i<t*2 ; i++ ) {
        printf("%d, ", vetor[i+1]);
    }
	    fclose(fp2);
	    for(i=0; i<t; i++ )
        free(matriz[i]);
	    free(matriz);
    free(vetor);
    return 0;
	}